Access 101
- ["Access 101" tag page]: Show all articles with the tag "Access 101" (including those where "Access 101" is a secondary tag).
-
Access 101: A Quick Start Guide to Microsoft Access: (Oct 5, 2023) These are my Access best practices. There are many like them, but these are mine.
-
Access 101: Bound vs. Unbound Forms: (Oct 6, 2023) A short primer on the difference between bound and unbound forms in Microsoft Access, along with example use cases for each.
-
Access 101: What is a Table in Access?: (Oct 10, 2023) If you know Excel worksheets, Access tables will look very familiar. Be careful, though! There is a "key" difference between the two.
-
Access 101: What is a Query in Access?: (Oct 11, 2023) Queries are how we get useful information from data stored in tables. They also let us make bulk changes to our data. ... Be careful with queries!
-
Access 101: Front-End vs. Back-End: (Oct 12, 2023) "Front-end" and "back-end" are the terms we use to distinguish between the user interface and the data storage, respectively.
-
Access 101: Local vs. Linked Tables: (Oct 17, 2023) In Access, tables can be local (stored in the front-end file) or linked (stored in a separate database). Let's explore when and why to use each type.
-
Access 101: Referential Integrity: (Oct 24, 2023) Referential integrity is the key to ensuring data quality in a relational database. Learn what it is and how to enforce it among your back-end tables.
-
Access 101: SELECT Query: (Oct 26, 2023) The SELECT query is the source of a relational database system's true power.
-
Access 101: INSERT INTO ("Append") Query: (Nov 17, 2023) Discover the power of INSERT INTO queries in Microsoft Access, a vital tool that allows you to add a single record or transfer data from one table to another.
-
Access 101: UPDATE Query: (Nov 30, 2023) The UPDATE query: a dangerously powerful tool for making bulk changes to data in your Access tables.
-
Access 101: DELETE Query: (Jan 31, 2024) The DELETE query: a tool for removing records in bulk that is almost too dangerous to use.
-
Access 101: UNION Query: (Jun 6, 2024) The UNION query: a way to stack multiple SELECT queries into a single resulting data set.
Advanced
- ["Advanced" tag page]: Show all articles with the tag "Advanced" (including those where "Advanced" is a secondary tag).
-
No Longer Set: (Nov 17, 2020) The definitive guide to JetShowPlan. How to: toggle it with a keyboard shortcut, interpret its output, and add syntax highlighting to showplan.out files.
-
Recursion Demystified: Creating Subfolders: (Nov 29, 2020) Recursion: it's not just for calculating factorials any more! A practical example of using recursion to create multiple missing subfolders.
-
VBA Collections: AKA, Linked Lists: (Dec 6, 2020) Everything I still remember about the Data Structures course I took 20 years ago as it applies to Collections in VBA.
-
VBA Dictionaries: AKA, Hash Tables: (Dec 7, 2020) This is not an article about Amsterdam flea markets. Hash tables are the data structures upon which Dictionaries are built.
-
"Complex" DTOs in VBA: (Dec 14, 2020) Can you use the OpenArgs parameter to pass multiple values to forms and reports with compile-time checking? You can if you use DTOs.
-
Checklist: The Best Access Applications: (Dec 19, 2020) Good. Better. BEST. Is your Access application as good as it can be?
-
Deceptively Complex Booleans: (Dec 29, 2020) Why is VBA such an optimistic language? Because there's only one way to say "No," but 65,535 ways to say "Yes."
-
Super-Safe Boolean Handling: (Dec 30, 2020) If you want to be safe when working with Booleans, you need to ensure they're stored as 0 or -1. That's not as easy as you might think.
-
Strongly Typed Collections in VBA: (Mar 26, 2021) Get better type safety and access to IntelliSense inside For Each loops by using "strongly-typed collections" in place of the VBA Collection type.
-
The Tradeoffs of ByRef and ByVal: (Apr 3, 2021) As they say, there is no free lunch. Passing by value or by reference is the sort of distinction you can mostly ignore...until one day you can't.
-
Raising Custom Events in VBA: (Apr 27, 2021) This quick tutorial will have you writing custom events in VBA in no time.
-
Using WithEvents to Encapsulate Event Handling Code: (May 4, 2021) You don't need to call the event handler for every control to handle its events. Instead, you can use WithEvents to encapsulate that code in a class module.
-
Handling Multiple Control Types in a WithEvents Class: (May 5, 2021) Using WithEvents to subclass form controls is a powerful technique. Here's one way to handle multiple control types in a single class.
-
TypeName vs. TypeOf: (May 12, 2021) You can check the type of a variable in VBA using TypeName or TypeOf. But do you know when to use which? And why? Let's explore.
-
VarType in VBA: (May 13, 2021) The VarType function lets you determine the underlying type of a variable. How does it fit in with TypeName and TypeOf?
-
Approximate String Matching Workshop: (May 19, 2021) Access wizard Alessandro Grimaldi is offering a paid workshop where he will teach how to implement the Levenshtein Distance algorithm in Access.
-
Double-declaring APIs: (Oct 9, 2021) Is it finally time to stop adding the `#If VBA7 Then` guard clause to PtrSafe API declarations? Let's explore.
-
64-bit Unsigned Integers in VBA: (Nov 22, 2021) VBA is missing a data type. The workaround--while not pretty--is at least straightforward.
-
Side-by-Side Installs of 32-bit and 64-bit Versions of Access: (Dec 6, 2021) You can't install two different Office bitnesses side by side on the same computer. Or can you? ...
-
Using Windows Authentication to Connect to SQL Server from Outside the Domain: (Dec 8, 2021) You don't need to join your computer to a domain to be able to connect to SQL Server using Windows Authentication. You just need to know this simple trick.
-
JetShowPlan Manager: (Dec 18, 2021) The quickest and easiest way to get started analyzing Microsoft Access query performance is with IslaDogs' JetShowPlan Manager application.
-
The Microsoft Access Ternary Operator: (Jan 6, 2022) It's a function. It's a statement. It's an operator. It's a--what the heck do we call this short-circuit-evaluating IIf() thing and why does it even matter?
-
3 Ways to Create Class Instances in VBA: (Jan 13, 2022) Before you can use a class, you need to create an instance of the class and assign it to an object variable. ... Or do you?
-
Mark-of-the-Web (MOTW) Details: (Mar 12, 2022) Microsoft announced that VBA will be blocked soon in all files downloaded from the web. Let's dive into how Windows manages this "Mark of the Web."
-
DISTINCT vs. GROUP BY: Microsoft Access Speed Test: (Mar 15, 2022) The GROUP BY and DISTINCT clauses can both be used to generate identical results. But which one is faster in Access? And--more importantly--why?
-
References, Protocols, and Language Specifications: (Apr 9, 2022) They're not always easy to read, but when you are looking for official answers, it's hard to beat these low-level protocol and language specifications.
-
HRESULT: Use "Long" and Not "LongPtr": (Aug 2, 2022) If the return type of an API function call is an HRESULT in the C++ header file, it should be declared as a Long in VBA (and not a LongPtr).
-
Understanding Signed and Unsigned Numbers in VBA: (Sep 9, 2022) Signed and unsigned numbers–and their hexadecimal representations–can interact in surprising ways in VBA.
-
Unicode Private Use Areas in VBA: (Sep 13, 2022) Looking for a safe temporary character or text delimiter that is guaranteed to not exist in your data set? Look no further than the Unicode Private Use Areas.
-
VBA Performance Tip: How to Cache Results of Slow Processes: (Feb 17, 2023) Store expensive function call results with memoization. Learn to implement this technique with our step-by-step instructions and sample code.
-
Microsoft Access's Surprising Folder Locking Behavior: (Mar 29, 2023) Microsoft Access could be the source of file and folder locks in ways that might surprise you.
-
Permutation Table: (Aug 8, 2023) We use Python's handy itertools.permutations() function to populate a local Access table with unique permutation values.
-
Static Linking vs. Dynamic Linking: (Jan 30, 2024) You've likely heard the terms "dynamic link library", "DLL Hell", and "static linking." But what do they mean? Why should you care? And how do they apply to Access?
AdventureWorks
- ["AdventureWorks" tag page]: Show all articles with the tag "AdventureWorks" (including those where "AdventureWorks" is a secondary tag).
-
The AdventureWorks SQL Server Sample Database: (Sep 8, 2023) Step-by-step instructions for installing the AdventureWorks SQL Server sample database.
AI
- ["AI" tag page]: Show all articles with the tag "AI" (including those where "AI" is a secondary tag).
-
How ChatGPT Helped Me Write a Complex Stored Procedure in SQL Server: (Apr 25, 2023) Stop treating ChatGPT like an all-knowing oracle and start treating it like the hard-working, enthusiastic, but not-quite-fully-formed intern that it currently is.
-
How to Use the CLEAR Framework to Get Better Results from ChatGPT: (May 4, 2023) Five concepts to help you improve your "prompt engineering" skills.
-
ChatGPT: Genius or Fraud?: (Jul 14, 2023) There's an ongoing debate over whether developers can trust the current crop of LLMs. The problem is people are asking the wrong question.
-
"AI Will Take My Job": A Self-Fulfilling Prophecy: (Dec 18, 2023) Whether you think AI is coming to *take* your job... Or you think AI will help you *be more productive* at your job... You're probably right.
-
The One Policy That Proves Microsoft is All In on AI: (Mar 12, 2024) Spanish Conquistador Hernán Cortés would be proud.
-
The AI Ecosystem Evolves: Foundational Models Give Way to Specialized Implementations in 2024: (Mar 22, 2024) The rise of specialized AI in 2024 will bring about a new era of intelligent, industry-specific solutions that will redefine the way businesses operate.
Announcement
- ["Announcement" tag page]: Show all articles with the tag "Announcement" (including those where "Announcement" is a secondary tag).
-
Combo Boxapalooza!: (Jun 4, 2021) Join me at 9 AM EDT on Friday, June 18th, where I'll help you unlock the true potential of my favorite Access control: the combo box.
-
Are You an Access Developer in Northeast Pennsylvania?: (Oct 25, 2021) Calling all (current or aspiring) Access developers in Northeast PA: we have an immediate job opening at Grandjean & Braverman, Inc.
-
Microsoft Access MVP: (Nov 1, 2021) Say hello to the newest Microsoft MVP Awardee for Office Apps & Services (MS Access).
-
Access Roadmap Update: (Nov 15, 2021) Microsoft has recently updated the Access roadmap for 2021 and beyond. Check out what's on the horizon for the next 14 months.
-
Access Dataverse Connector Presentations: (Dec 1, 2021) A list of past and upcoming presentations on the Access Dataverse connector with Access Program Manager Michael Aldridge.
-
Access NewsCast with Karl Donaubauer: Episode 1: (Dec 15, 2021) The very first edition of Access News with Karl Donaubauer was released today. Catch up on the latest news and updates in this 30-minute video.
-
Upcoming Presentation: Troubleshooting Query Performance: (Feb 9, 2022) Join me online on Thursday, March 17, for my presentation, "Troubleshooting Query Performance," to the Denver Area Access User Group.
-
Office to Disable All VBA Code in Files from the Internet: (Feb 12, 2022) Beginning in April 2022, users will no longer have the option to manually enable VBA code in Office files downloaded from the internet.
-
Access DevCon Vienna 2022: (Mar 9, 2022) Mark your calendars and register for Access DevCon Vienna! The event will be held virtually via MS Teams on April 28 and 29, 2022, from 10 AM - 4 PM EDT.
-
Access NewsCast with Karl Donaubauer: Episode 2: (Mar 21, 2022) Catch up on the latest news and updates from the Access world in episode 2 of Karl's webcast, featuring Thomas Pfoch's Access map tool.
-
IE11 Retirement FAQ for Access Apps: (Apr 2, 2022) Internet Explorer 11 will reach end-of-life before we have an Edge-based browser control. Read on to learn how this will affect Access developers.
-
twinBASIC DevCon Vienna: Volume 2: (Apr 4, 2022) It's back! This year's Access DevCon Vienna will feature twinBASIC for the second year in a row. This time around the focus is on practical uses for Access developers.
-
Building Ribbon Interfaces in Code: (May 26, 2022) Join me online on Wednesday, July 6, for my presentation "Building Ribbon Interfaces in Code" to the Access Europe user group.
-
What Happened to the Access Roadmap: (May 31, 2022) Don't be (too) alarmed about the lack of feature development shown on the Access public roadmap. Access isn't dead...you just need to know where to look.
-
Access at Microsoft Build 2022: (Jun 14, 2022) You'll never guess what the Access team talked about at the recent annual Microsoft Build conference. I'll give you a hint: it rhymes with "beta curse."
-
Office Apps Won't Run on Windows Server After October 2025: (Jun 30, 2022) Earlier this month, Microsoft quietly announced the end of support for running (most) Office apps on Windows Server at the end of 2025.
-
Microsoft Backtracks (Temporarily?) on Policy to Block All Macros with Mark of the Web: (Jul 7, 2022) Microsoft official announces in blog comments (!) that they are rolling back their recently implemented VBA-blocking policy.
-
vbWatchdog v4 Released: (Jul 29, 2022) Version 4 of vbWatchdog just got released. If you don't already own a license for it, you should. And if you do, you should upgrade before August 31, 2022.
-
Timeline for VBA Macros Blocked by Default in Microsoft Office: (Sep 26, 2022) Enterprise customers are next in line to have macros blocked by default in Office files from the web. The policy addresses a real problem, but does it actually help?
-
Access NewsCast with Karl Donaubauer: Episode 4: (Oct 7, 2022) Catch up on the latest news and updates from the Access world in episode 4 of Karl's webcast, with guests Colin Riddington, Wayne Phillips, and, of course, Viktoria.
-
Prepare for the Upcoming Death of IE11: (Oct 28, 2022) The grim reaper takes IE11 for good on February 14, 2023. Prepare for the inevitable now to avoid unnecessary Valentine's Day pain.
-
Access DevCon Vienna 2023: April 27-28: (Feb 27, 2023) The annual Access DevCon Vienna conference will be held April 27-28, 2023. Check out this year's lineup and get registered today.
-
Richard Rost: Newest Access MVP: (Feb 28, 2023) The Access video king is back on the MVP rolls. Richard Rost earned the MVP award for the third time and his first since 2015.
-
New Edge Browser Control Now Available in Preview and Beta Versions of Microsoft Access: (Mar 15, 2023) It's finally (almost) here. The new Edge Browser control is finally available for testing in Insider versions of Microsoft 365.
-
Final Lineup Announced for Access DevCon Vienna 2023: (Mar 21, 2023) The final lineup is in for Access DevCon Vienna 2023. Check out all 12 presentation topics and speakers. And don't forget to register!
-
Edge-Based Browser Control Officially Released: (May 5, 2023) It's officially here. The new Edge-based web browser control for Microsoft Access is now Generally Available for Microsoft 365 versions 2304 and later.
-
UPDATE: Office Apps WILL Run on Windows Server After October 2025: (May 17, 2023) Earlier this year, Microsoft quietly reversed its decision to end support for running Office apps on Windows Server at the end of 2025.
-
Upcoming Presentation: Form Templates: (Jun 9, 2023) Join me online on Thursday, June 15, for my presentation, "Form Templates in Microsoft Access," to the Denver Area Access User Group.
-
DevHut.Net Goes Dark: (Jun 26, 2023) Much like the legendary Keyser Soze, Daniel Pineault's renowned Microsoft Access website--DevHut.net--suddenly disappeared last week.
-
Coming Soon: Access Developer Survey: (Jul 21, 2023) MAJOR ANNOUNCEMENT: NoLongerSet will be launching its inaugural Access Developer Survey soon. I need your help!
-
Python in Excel: (Aug 23, 2023) Microsoft just announced a built-in Python worksheet function for Excel. When can we expect similar love for Access?
-
Microsoft Announces the Death of VBScript: (Nov 1, 2023) As seems to be their new modus operandi, Microsoft has quietly rolled a hand grenade into the VBA development world with very little fanfare.
-
Upcoming Presentation: Streamline Your Import/Export Spec Workflow with VBA Classes: (Nov 9, 2023) Join me online on Wednesday, December 6, for my presentation "Streamline Your Import/Export Spec Workflow with VBA Classes" to the Access Europe user group.
-
Dropping `#If VBA7 Then` From API Declares: (Dec 21, 2023) Plus, step-by-step instructions for restoring the `#If VBA7 Then` code construct if you still need to support Office 2007 or earlier.
-
Access Day 2024: (Jan 18, 2024) Come join the Microsoft Access team, several Access MVPs (including me), and other fellow Access developers in Redmond, WA, on March 15, 2024.
-
Major Release of the Microsoft Access Version Control Add-in: (Feb 7, 2024) Version 4.x of Adam Waller's msaccess-vcs-addin has been officially released today, featuring a ribbon toolbar, SQL formatting, and basic SQL Server schema support.
-
Upcoming Presentation: Better Access Charts by Thomas Möller: (Mar 1, 2024) Thomas Möller is back with a much-anticipated follow-up to his earlier presentation on incorporating JavaScript charting frameworks in Microsoft Access.
-
twinBASIC at Access DevCon Vienna 2024: (Mar 11, 2024) Join me at Access DevCon Vienna 2024 for my presentation on creating MZ-Tools-style VBIDE addins using twinBASIC.
-
Final Lineup Announced for Access DevCon Vienna 2024: (Mar 20, 2024) The final lineup is in for Access DevCon Vienna 2024. Check out the speakers and all 12 presentation topics. And don't forget to register!
-
Access NewsCast with Karl Donaubauer: Episode 8: (Apr 4, 2024) Catch up on the latest news from the Access world in episode 8 of Karl's webcast, with guests Juanjo Luna, Alessandro Grimaldi, and fan favorite, Viktoria.
-
Sun, Sand, and Access: The 2024 Developer Conference in Valencia, Spain: (May 15, 2024) The key to a great conference is a great host. Stories from my time at the 2023 MVP Summit with Juanjo Luna show he's the perfect man for the job.
-
Microsoft Announces End of RegEx Support for VBA: (May 23, 2024) We finally have an official timeline for when Microsoft will be dropping support for VBScript--and what impact that will have on VBA developers.
-
ActiveX Disabled by Default in Office LTSC 2024: (Sep 18, 2024) The slow death of Microsoft's desktop application capabilities marches on as another COM technology struggles against a grim fate.
API
- ["API" tag page]: Show all articles with the tag "API" (including those where "API" is a secondary tag).
Archive
- ["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...
AUG Video Recap
- ["AUG Video Recap" tag page]: Show all articles with the tag "AUG Video Recap" (including those where "AUG Video Recap" is a secondary tag).
-
Modern Access Interfaces: Form Resizing Solutions with Greg Regan: (Nov 25, 2024) Form Resizing Solutions in Microsoft Access: Making Applications Work Across Different Screen Resolutions (an Access User Group talk with Greg Regan)
-
Auto-Closing Access Applications: (Nov 27, 2024) A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
-
Migration Planning - Access to SQL Server: (Dec 1, 2024) SQL Server Migration Planning: A Strategic Approach to Transitioning from Access (an Access User Group talk with Kent Gorrell)
-
Intro to the Monaco SQL Editor with Maria Barnes: (Dec 3, 2024) Learn about the new Monaco SQL Editor feature in Microsoft Access (an Access User Group talk with Maria Barnes).
-
Web APIs in Access with George Young: (Dec 8, 2024) Using Web APIs in Microsoft Access: Connecting Access Applications to Online Services (an Access User Group talk with George Young)
AutoHotKey
- ["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.
Backwards Compatibility
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
-
Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
-
How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
-
Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
-
Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Access 101: A Quick Start Guide to Microsoft Access: (Oct 5, 2023) These are my Access best practices. There are many like them, but these are mine.
- Access 101: Bound vs. Unbound Forms: (Oct 6, 2023) A short primer on the difference between bound and unbound forms in Microsoft Access, along with example use cases for each.
- Access 101: What is a Table in Access?: (Oct 10, 2023) If you know Excel worksheets, Access tables will look very familiar. Be careful, though! There is a "key" difference between the two.
- Access 101: What is a Query in Access?: (Oct 11, 2023) Queries are how we get useful information from data stored in tables. They also let us make bulk changes to our data. ... Be careful with queries!
- Access 101: Front-End vs. Back-End: (Oct 12, 2023) "Front-end" and "back-end" are the terms we use to distinguish between the user interface and the data storage, respectively.
- Access 101: Local vs. Linked Tables: (Oct 17, 2023) In Access, tables can be local (stored in the front-end file) or linked (stored in a separate database). Let's explore when and why to use each type.
- Access 101: Referential Integrity: (Oct 24, 2023) Referential integrity is the key to ensuring data quality in a relational database. Learn what it is and how to enforce it among your back-end tables.
- Access 101: SELECT Query: (Oct 26, 2023) The SELECT query is the source of a relational database system's true power.
- Access 101: INSERT INTO ("Append") Query: (Nov 17, 2023) Discover the power of INSERT INTO queries in Microsoft Access, a vital tool that allows you to add a single record or transfer data from one table to another.
- Access 101: UPDATE Query: (Nov 30, 2023) The UPDATE query: a dangerously powerful tool for making bulk changes to data in your Access tables.
- Access 101: DELETE Query: (Jan 31, 2024) The DELETE query: a tool for removing records in bulk that is almost too dangerous to use.
- Access 101: UNION Query: (Jun 6, 2024) The UNION query: a way to stack multiple SELECT queries into a single resulting data set.
- ["Advanced" tag page]: Show all articles with the tag "Advanced" (including those where "Advanced" is a secondary tag).
- No Longer Set: (Nov 17, 2020) The definitive guide to JetShowPlan. How to: toggle it with a keyboard shortcut, interpret its output, and add syntax highlighting to showplan.out files.
- Recursion Demystified: Creating Subfolders: (Nov 29, 2020) Recursion: it's not just for calculating factorials any more! A practical example of using recursion to create multiple missing subfolders.
- VBA Collections: AKA, Linked Lists: (Dec 6, 2020) Everything I still remember about the Data Structures course I took 20 years ago as it applies to Collections in VBA.
- VBA Dictionaries: AKA, Hash Tables: (Dec 7, 2020) This is not an article about Amsterdam flea markets. Hash tables are the data structures upon which Dictionaries are built.
- "Complex" DTOs in VBA: (Dec 14, 2020) Can you use the OpenArgs parameter to pass multiple values to forms and reports with compile-time checking? You can if you use DTOs.
- Checklist: The Best Access Applications: (Dec 19, 2020) Good. Better. BEST. Is your Access application as good as it can be?
- Deceptively Complex Booleans: (Dec 29, 2020) Why is VBA such an optimistic language? Because there's only one way to say "No," but 65,535 ways to say "Yes."
- Super-Safe Boolean Handling: (Dec 30, 2020) If you want to be safe when working with Booleans, you need to ensure they're stored as 0 or -1. That's not as easy as you might think.
- Strongly Typed Collections in VBA: (Mar 26, 2021) Get better type safety and access to IntelliSense inside For Each loops by using "strongly-typed collections" in place of the VBA Collection type.
- The Tradeoffs of ByRef and ByVal: (Apr 3, 2021) As they say, there is no free lunch. Passing by value or by reference is the sort of distinction you can mostly ignore...until one day you can't.
- Raising Custom Events in VBA: (Apr 27, 2021) This quick tutorial will have you writing custom events in VBA in no time.
- Using WithEvents to Encapsulate Event Handling Code: (May 4, 2021) You don't need to call the event handler for every control to handle its events. Instead, you can use WithEvents to encapsulate that code in a class module.
- Handling Multiple Control Types in a WithEvents Class: (May 5, 2021) Using WithEvents to subclass form controls is a powerful technique. Here's one way to handle multiple control types in a single class.
- TypeName vs. TypeOf: (May 12, 2021) You can check the type of a variable in VBA using TypeName or TypeOf. But do you know when to use which? And why? Let's explore.
- VarType in VBA: (May 13, 2021) The VarType function lets you determine the underlying type of a variable. How does it fit in with TypeName and TypeOf?
- Approximate String Matching Workshop: (May 19, 2021) Access wizard Alessandro Grimaldi is offering a paid workshop where he will teach how to implement the Levenshtein Distance algorithm in Access.
- Double-declaring APIs: (Oct 9, 2021) Is it finally time to stop adding the `#If VBA7 Then` guard clause to PtrSafe API declarations? Let's explore.
- 64-bit Unsigned Integers in VBA: (Nov 22, 2021) VBA is missing a data type. The workaround--while not pretty--is at least straightforward.
- Side-by-Side Installs of 32-bit and 64-bit Versions of Access: (Dec 6, 2021) You can't install two different Office bitnesses side by side on the same computer. Or can you? ...
- Using Windows Authentication to Connect to SQL Server from Outside the Domain: (Dec 8, 2021) You don't need to join your computer to a domain to be able to connect to SQL Server using Windows Authentication. You just need to know this simple trick.
- JetShowPlan Manager: (Dec 18, 2021) The quickest and easiest way to get started analyzing Microsoft Access query performance is with IslaDogs' JetShowPlan Manager application.
- The Microsoft Access Ternary Operator: (Jan 6, 2022) It's a function. It's a statement. It's an operator. It's a--what the heck do we call this short-circuit-evaluating IIf() thing and why does it even matter?
- 3 Ways to Create Class Instances in VBA: (Jan 13, 2022) Before you can use a class, you need to create an instance of the class and assign it to an object variable. ... Or do you?
- Mark-of-the-Web (MOTW) Details: (Mar 12, 2022) Microsoft announced that VBA will be blocked soon in all files downloaded from the web. Let's dive into how Windows manages this "Mark of the Web."
- DISTINCT vs. GROUP BY: Microsoft Access Speed Test: (Mar 15, 2022) The GROUP BY and DISTINCT clauses can both be used to generate identical results. But which one is faster in Access? And--more importantly--why?
- References, Protocols, and Language Specifications: (Apr 9, 2022) They're not always easy to read, but when you are looking for official answers, it's hard to beat these low-level protocol and language specifications.
- HRESULT: Use "Long" and Not "LongPtr": (Aug 2, 2022) If the return type of an API function call is an HRESULT in the C++ header file, it should be declared as a Long in VBA (and not a LongPtr).
- Understanding Signed and Unsigned Numbers in VBA: (Sep 9, 2022) Signed and unsigned numbers–and their hexadecimal representations–can interact in surprising ways in VBA.
- Unicode Private Use Areas in VBA: (Sep 13, 2022) Looking for a safe temporary character or text delimiter that is guaranteed to not exist in your data set? Look no further than the Unicode Private Use Areas.
- VBA Performance Tip: How to Cache Results of Slow Processes: (Feb 17, 2023) Store expensive function call results with memoization. Learn to implement this technique with our step-by-step instructions and sample code.
- Microsoft Access's Surprising Folder Locking Behavior: (Mar 29, 2023) Microsoft Access could be the source of file and folder locks in ways that might surprise you.
- Permutation Table: (Aug 8, 2023) We use Python's handy itertools.permutations() function to populate a local Access table with unique permutation values.
- Static Linking vs. Dynamic Linking: (Jan 30, 2024) You've likely heard the terms "dynamic link library", "DLL Hell", and "static linking." But what do they mean? Why should you care? And how do they apply to Access?
AdventureWorks
- ["AdventureWorks" tag page]: Show all articles with the tag "AdventureWorks" (including those where "AdventureWorks" is a secondary tag).
-
The AdventureWorks SQL Server Sample Database: (Sep 8, 2023) Step-by-step instructions for installing the AdventureWorks SQL Server sample database.
AI
- ["AI" tag page]: Show all articles with the tag "AI" (including those where "AI" is a secondary tag).
-
How ChatGPT Helped Me Write a Complex Stored Procedure in SQL Server: (Apr 25, 2023) Stop treating ChatGPT like an all-knowing oracle and start treating it like the hard-working, enthusiastic, but not-quite-fully-formed intern that it currently is.
-
How to Use the CLEAR Framework to Get Better Results from ChatGPT: (May 4, 2023) Five concepts to help you improve your "prompt engineering" skills.
-
ChatGPT: Genius or Fraud?: (Jul 14, 2023) There's an ongoing debate over whether developers can trust the current crop of LLMs. The problem is people are asking the wrong question.
-
"AI Will Take My Job": A Self-Fulfilling Prophecy: (Dec 18, 2023) Whether you think AI is coming to *take* your job... Or you think AI will help you *be more productive* at your job... You're probably right.
-
The One Policy That Proves Microsoft is All In on AI: (Mar 12, 2024) Spanish Conquistador Hernán Cortés would be proud.
-
The AI Ecosystem Evolves: Foundational Models Give Way to Specialized Implementations in 2024: (Mar 22, 2024) The rise of specialized AI in 2024 will bring about a new era of intelligent, industry-specific solutions that will redefine the way businesses operate.
Announcement
- ["Announcement" tag page]: Show all articles with the tag "Announcement" (including those where "Announcement" is a secondary tag).
-
Combo Boxapalooza!: (Jun 4, 2021) Join me at 9 AM EDT on Friday, June 18th, where I'll help you unlock the true potential of my favorite Access control: the combo box.
-
Are You an Access Developer in Northeast Pennsylvania?: (Oct 25, 2021) Calling all (current or aspiring) Access developers in Northeast PA: we have an immediate job opening at Grandjean & Braverman, Inc.
-
Microsoft Access MVP: (Nov 1, 2021) Say hello to the newest Microsoft MVP Awardee for Office Apps & Services (MS Access).
-
Access Roadmap Update: (Nov 15, 2021) Microsoft has recently updated the Access roadmap for 2021 and beyond. Check out what's on the horizon for the next 14 months.
-
Access Dataverse Connector Presentations: (Dec 1, 2021) A list of past and upcoming presentations on the Access Dataverse connector with Access Program Manager Michael Aldridge.
-
Access NewsCast with Karl Donaubauer: Episode 1: (Dec 15, 2021) The very first edition of Access News with Karl Donaubauer was released today. Catch up on the latest news and updates in this 30-minute video.
-
Upcoming Presentation: Troubleshooting Query Performance: (Feb 9, 2022) Join me online on Thursday, March 17, for my presentation, "Troubleshooting Query Performance," to the Denver Area Access User Group.
-
Office to Disable All VBA Code in Files from the Internet: (Feb 12, 2022) Beginning in April 2022, users will no longer have the option to manually enable VBA code in Office files downloaded from the internet.
-
Access DevCon Vienna 2022: (Mar 9, 2022) Mark your calendars and register for Access DevCon Vienna! The event will be held virtually via MS Teams on April 28 and 29, 2022, from 10 AM - 4 PM EDT.
-
Access NewsCast with Karl Donaubauer: Episode 2: (Mar 21, 2022) Catch up on the latest news and updates from the Access world in episode 2 of Karl's webcast, featuring Thomas Pfoch's Access map tool.
-
IE11 Retirement FAQ for Access Apps: (Apr 2, 2022) Internet Explorer 11 will reach end-of-life before we have an Edge-based browser control. Read on to learn how this will affect Access developers.
-
twinBASIC DevCon Vienna: Volume 2: (Apr 4, 2022) It's back! This year's Access DevCon Vienna will feature twinBASIC for the second year in a row. This time around the focus is on practical uses for Access developers.
-
Building Ribbon Interfaces in Code: (May 26, 2022) Join me online on Wednesday, July 6, for my presentation "Building Ribbon Interfaces in Code" to the Access Europe user group.
-
What Happened to the Access Roadmap: (May 31, 2022) Don't be (too) alarmed about the lack of feature development shown on the Access public roadmap. Access isn't dead...you just need to know where to look.
-
Access at Microsoft Build 2022: (Jun 14, 2022) You'll never guess what the Access team talked about at the recent annual Microsoft Build conference. I'll give you a hint: it rhymes with "beta curse."
-
Office Apps Won't Run on Windows Server After October 2025: (Jun 30, 2022) Earlier this month, Microsoft quietly announced the end of support for running (most) Office apps on Windows Server at the end of 2025.
-
Microsoft Backtracks (Temporarily?) on Policy to Block All Macros with Mark of the Web: (Jul 7, 2022) Microsoft official announces in blog comments (!) that they are rolling back their recently implemented VBA-blocking policy.
-
vbWatchdog v4 Released: (Jul 29, 2022) Version 4 of vbWatchdog just got released. If you don't already own a license for it, you should. And if you do, you should upgrade before August 31, 2022.
-
Timeline for VBA Macros Blocked by Default in Microsoft Office: (Sep 26, 2022) Enterprise customers are next in line to have macros blocked by default in Office files from the web. The policy addresses a real problem, but does it actually help?
-
Access NewsCast with Karl Donaubauer: Episode 4: (Oct 7, 2022) Catch up on the latest news and updates from the Access world in episode 4 of Karl's webcast, with guests Colin Riddington, Wayne Phillips, and, of course, Viktoria.
-
Prepare for the Upcoming Death of IE11: (Oct 28, 2022) The grim reaper takes IE11 for good on February 14, 2023. Prepare for the inevitable now to avoid unnecessary Valentine's Day pain.
-
Access DevCon Vienna 2023: April 27-28: (Feb 27, 2023) The annual Access DevCon Vienna conference will be held April 27-28, 2023. Check out this year's lineup and get registered today.
-
Richard Rost: Newest Access MVP: (Feb 28, 2023) The Access video king is back on the MVP rolls. Richard Rost earned the MVP award for the third time and his first since 2015.
-
New Edge Browser Control Now Available in Preview and Beta Versions of Microsoft Access: (Mar 15, 2023) It's finally (almost) here. The new Edge Browser control is finally available for testing in Insider versions of Microsoft 365.
-
Final Lineup Announced for Access DevCon Vienna 2023: (Mar 21, 2023) The final lineup is in for Access DevCon Vienna 2023. Check out all 12 presentation topics and speakers. And don't forget to register!
-
Edge-Based Browser Control Officially Released: (May 5, 2023) It's officially here. The new Edge-based web browser control for Microsoft Access is now Generally Available for Microsoft 365 versions 2304 and later.
-
UPDATE: Office Apps WILL Run on Windows Server After October 2025: (May 17, 2023) Earlier this year, Microsoft quietly reversed its decision to end support for running Office apps on Windows Server at the end of 2025.
-
Upcoming Presentation: Form Templates: (Jun 9, 2023) Join me online on Thursday, June 15, for my presentation, "Form Templates in Microsoft Access," to the Denver Area Access User Group.
-
DevHut.Net Goes Dark: (Jun 26, 2023) Much like the legendary Keyser Soze, Daniel Pineault's renowned Microsoft Access website--DevHut.net--suddenly disappeared last week.
-
Coming Soon: Access Developer Survey: (Jul 21, 2023) MAJOR ANNOUNCEMENT: NoLongerSet will be launching its inaugural Access Developer Survey soon. I need your help!
-
Python in Excel: (Aug 23, 2023) Microsoft just announced a built-in Python worksheet function for Excel. When can we expect similar love for Access?
-
Microsoft Announces the Death of VBScript: (Nov 1, 2023) As seems to be their new modus operandi, Microsoft has quietly rolled a hand grenade into the VBA development world with very little fanfare.
-
Upcoming Presentation: Streamline Your Import/Export Spec Workflow with VBA Classes: (Nov 9, 2023) Join me online on Wednesday, December 6, for my presentation "Streamline Your Import/Export Spec Workflow with VBA Classes" to the Access Europe user group.
-
Dropping `#If VBA7 Then` From API Declares: (Dec 21, 2023) Plus, step-by-step instructions for restoring the `#If VBA7 Then` code construct if you still need to support Office 2007 or earlier.
-
Access Day 2024: (Jan 18, 2024) Come join the Microsoft Access team, several Access MVPs (including me), and other fellow Access developers in Redmond, WA, on March 15, 2024.
-
Major Release of the Microsoft Access Version Control Add-in: (Feb 7, 2024) Version 4.x of Adam Waller's msaccess-vcs-addin has been officially released today, featuring a ribbon toolbar, SQL formatting, and basic SQL Server schema support.
-
Upcoming Presentation: Better Access Charts by Thomas Möller: (Mar 1, 2024) Thomas Möller is back with a much-anticipated follow-up to his earlier presentation on incorporating JavaScript charting frameworks in Microsoft Access.
-
twinBASIC at Access DevCon Vienna 2024: (Mar 11, 2024) Join me at Access DevCon Vienna 2024 for my presentation on creating MZ-Tools-style VBIDE addins using twinBASIC.
-
Final Lineup Announced for Access DevCon Vienna 2024: (Mar 20, 2024) The final lineup is in for Access DevCon Vienna 2024. Check out the speakers and all 12 presentation topics. And don't forget to register!
-
Access NewsCast with Karl Donaubauer: Episode 8: (Apr 4, 2024) Catch up on the latest news from the Access world in episode 8 of Karl's webcast, with guests Juanjo Luna, Alessandro Grimaldi, and fan favorite, Viktoria.
-
Sun, Sand, and Access: The 2024 Developer Conference in Valencia, Spain: (May 15, 2024) The key to a great conference is a great host. Stories from my time at the 2023 MVP Summit with Juanjo Luna show he's the perfect man for the job.
-
Microsoft Announces End of RegEx Support for VBA: (May 23, 2024) We finally have an official timeline for when Microsoft will be dropping support for VBScript--and what impact that will have on VBA developers.
-
ActiveX Disabled by Default in Office LTSC 2024: (Sep 18, 2024) The slow death of Microsoft's desktop application capabilities marches on as another COM technology struggles against a grim fate.
API
- ["API" tag page]: Show all articles with the tag "API" (including those where "API" is a secondary tag).
Archive
- ["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...
AUG Video Recap
- ["AUG Video Recap" tag page]: Show all articles with the tag "AUG Video Recap" (including those where "AUG Video Recap" is a secondary tag).
-
Modern Access Interfaces: Form Resizing Solutions with Greg Regan: (Nov 25, 2024) Form Resizing Solutions in Microsoft Access: Making Applications Work Across Different Screen Resolutions (an Access User Group talk with Greg Regan)
-
Auto-Closing Access Applications: (Nov 27, 2024) A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
-
Migration Planning - Access to SQL Server: (Dec 1, 2024) SQL Server Migration Planning: A Strategic Approach to Transitioning from Access (an Access User Group talk with Kent Gorrell)
-
Intro to the Monaco SQL Editor with Maria Barnes: (Dec 3, 2024) Learn about the new Monaco SQL Editor feature in Microsoft Access (an Access User Group talk with Maria Barnes).
-
Web APIs in Access with George Young: (Dec 8, 2024) Using Web APIs in Microsoft Access: Connecting Access Applications to Online Services (an Access User Group talk with George Young)
AutoHotKey
- ["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.
Backwards Compatibility
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
-
Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
-
How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
-
Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
-
Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- The AdventureWorks SQL Server Sample Database: (Sep 8, 2023) Step-by-step instructions for installing the AdventureWorks SQL Server sample database.
- ["AI" tag page]: Show all articles with the tag "AI" (including those where "AI" is a secondary tag).
- How ChatGPT Helped Me Write a Complex Stored Procedure in SQL Server: (Apr 25, 2023) Stop treating ChatGPT like an all-knowing oracle and start treating it like the hard-working, enthusiastic, but not-quite-fully-formed intern that it currently is.
- How to Use the CLEAR Framework to Get Better Results from ChatGPT: (May 4, 2023) Five concepts to help you improve your "prompt engineering" skills.
- ChatGPT: Genius or Fraud?: (Jul 14, 2023) There's an ongoing debate over whether developers can trust the current crop of LLMs. The problem is people are asking the wrong question.
- "AI Will Take My Job": A Self-Fulfilling Prophecy: (Dec 18, 2023) Whether you think AI is coming to *take* your job... Or you think AI will help you *be more productive* at your job... You're probably right.
- The One Policy That Proves Microsoft is All In on AI: (Mar 12, 2024) Spanish Conquistador Hernán Cortés would be proud.
- The AI Ecosystem Evolves: Foundational Models Give Way to Specialized Implementations in 2024: (Mar 22, 2024) The rise of specialized AI in 2024 will bring about a new era of intelligent, industry-specific solutions that will redefine the way businesses operate.
Announcement
- ["Announcement" tag page]: Show all articles with the tag "Announcement" (including those where "Announcement" is a secondary tag).
-
Combo Boxapalooza!: (Jun 4, 2021) Join me at 9 AM EDT on Friday, June 18th, where I'll help you unlock the true potential of my favorite Access control: the combo box.
-
Are You an Access Developer in Northeast Pennsylvania?: (Oct 25, 2021) Calling all (current or aspiring) Access developers in Northeast PA: we have an immediate job opening at Grandjean & Braverman, Inc.
-
Microsoft Access MVP: (Nov 1, 2021) Say hello to the newest Microsoft MVP Awardee for Office Apps & Services (MS Access).
-
Access Roadmap Update: (Nov 15, 2021) Microsoft has recently updated the Access roadmap for 2021 and beyond. Check out what's on the horizon for the next 14 months.
-
Access Dataverse Connector Presentations: (Dec 1, 2021) A list of past and upcoming presentations on the Access Dataverse connector with Access Program Manager Michael Aldridge.
-
Access NewsCast with Karl Donaubauer: Episode 1: (Dec 15, 2021) The very first edition of Access News with Karl Donaubauer was released today. Catch up on the latest news and updates in this 30-minute video.
-
Upcoming Presentation: Troubleshooting Query Performance: (Feb 9, 2022) Join me online on Thursday, March 17, for my presentation, "Troubleshooting Query Performance," to the Denver Area Access User Group.
-
Office to Disable All VBA Code in Files from the Internet: (Feb 12, 2022) Beginning in April 2022, users will no longer have the option to manually enable VBA code in Office files downloaded from the internet.
-
Access DevCon Vienna 2022: (Mar 9, 2022) Mark your calendars and register for Access DevCon Vienna! The event will be held virtually via MS Teams on April 28 and 29, 2022, from 10 AM - 4 PM EDT.
-
Access NewsCast with Karl Donaubauer: Episode 2: (Mar 21, 2022) Catch up on the latest news and updates from the Access world in episode 2 of Karl's webcast, featuring Thomas Pfoch's Access map tool.
-
IE11 Retirement FAQ for Access Apps: (Apr 2, 2022) Internet Explorer 11 will reach end-of-life before we have an Edge-based browser control. Read on to learn how this will affect Access developers.
-
twinBASIC DevCon Vienna: Volume 2: (Apr 4, 2022) It's back! This year's Access DevCon Vienna will feature twinBASIC for the second year in a row. This time around the focus is on practical uses for Access developers.
-
Building Ribbon Interfaces in Code: (May 26, 2022) Join me online on Wednesday, July 6, for my presentation "Building Ribbon Interfaces in Code" to the Access Europe user group.
-
What Happened to the Access Roadmap: (May 31, 2022) Don't be (too) alarmed about the lack of feature development shown on the Access public roadmap. Access isn't dead...you just need to know where to look.
-
Access at Microsoft Build 2022: (Jun 14, 2022) You'll never guess what the Access team talked about at the recent annual Microsoft Build conference. I'll give you a hint: it rhymes with "beta curse."
-
Office Apps Won't Run on Windows Server After October 2025: (Jun 30, 2022) Earlier this month, Microsoft quietly announced the end of support for running (most) Office apps on Windows Server at the end of 2025.
-
Microsoft Backtracks (Temporarily?) on Policy to Block All Macros with Mark of the Web: (Jul 7, 2022) Microsoft official announces in blog comments (!) that they are rolling back their recently implemented VBA-blocking policy.
-
vbWatchdog v4 Released: (Jul 29, 2022) Version 4 of vbWatchdog just got released. If you don't already own a license for it, you should. And if you do, you should upgrade before August 31, 2022.
-
Timeline for VBA Macros Blocked by Default in Microsoft Office: (Sep 26, 2022) Enterprise customers are next in line to have macros blocked by default in Office files from the web. The policy addresses a real problem, but does it actually help?
-
Access NewsCast with Karl Donaubauer: Episode 4: (Oct 7, 2022) Catch up on the latest news and updates from the Access world in episode 4 of Karl's webcast, with guests Colin Riddington, Wayne Phillips, and, of course, Viktoria.
-
Prepare for the Upcoming Death of IE11: (Oct 28, 2022) The grim reaper takes IE11 for good on February 14, 2023. Prepare for the inevitable now to avoid unnecessary Valentine's Day pain.
-
Access DevCon Vienna 2023: April 27-28: (Feb 27, 2023) The annual Access DevCon Vienna conference will be held April 27-28, 2023. Check out this year's lineup and get registered today.
-
Richard Rost: Newest Access MVP: (Feb 28, 2023) The Access video king is back on the MVP rolls. Richard Rost earned the MVP award for the third time and his first since 2015.
-
New Edge Browser Control Now Available in Preview and Beta Versions of Microsoft Access: (Mar 15, 2023) It's finally (almost) here. The new Edge Browser control is finally available for testing in Insider versions of Microsoft 365.
-
Final Lineup Announced for Access DevCon Vienna 2023: (Mar 21, 2023) The final lineup is in for Access DevCon Vienna 2023. Check out all 12 presentation topics and speakers. And don't forget to register!
-
Edge-Based Browser Control Officially Released: (May 5, 2023) It's officially here. The new Edge-based web browser control for Microsoft Access is now Generally Available for Microsoft 365 versions 2304 and later.
-
UPDATE: Office Apps WILL Run on Windows Server After October 2025: (May 17, 2023) Earlier this year, Microsoft quietly reversed its decision to end support for running Office apps on Windows Server at the end of 2025.
-
Upcoming Presentation: Form Templates: (Jun 9, 2023) Join me online on Thursday, June 15, for my presentation, "Form Templates in Microsoft Access," to the Denver Area Access User Group.
-
DevHut.Net Goes Dark: (Jun 26, 2023) Much like the legendary Keyser Soze, Daniel Pineault's renowned Microsoft Access website--DevHut.net--suddenly disappeared last week.
-
Coming Soon: Access Developer Survey: (Jul 21, 2023) MAJOR ANNOUNCEMENT: NoLongerSet will be launching its inaugural Access Developer Survey soon. I need your help!
-
Python in Excel: (Aug 23, 2023) Microsoft just announced a built-in Python worksheet function for Excel. When can we expect similar love for Access?
-
Microsoft Announces the Death of VBScript: (Nov 1, 2023) As seems to be their new modus operandi, Microsoft has quietly rolled a hand grenade into the VBA development world with very little fanfare.
-
Upcoming Presentation: Streamline Your Import/Export Spec Workflow with VBA Classes: (Nov 9, 2023) Join me online on Wednesday, December 6, for my presentation "Streamline Your Import/Export Spec Workflow with VBA Classes" to the Access Europe user group.
-
Dropping `#If VBA7 Then` From API Declares: (Dec 21, 2023) Plus, step-by-step instructions for restoring the `#If VBA7 Then` code construct if you still need to support Office 2007 or earlier.
-
Access Day 2024: (Jan 18, 2024) Come join the Microsoft Access team, several Access MVPs (including me), and other fellow Access developers in Redmond, WA, on March 15, 2024.
-
Major Release of the Microsoft Access Version Control Add-in: (Feb 7, 2024) Version 4.x of Adam Waller's msaccess-vcs-addin has been officially released today, featuring a ribbon toolbar, SQL formatting, and basic SQL Server schema support.
-
Upcoming Presentation: Better Access Charts by Thomas Möller: (Mar 1, 2024) Thomas Möller is back with a much-anticipated follow-up to his earlier presentation on incorporating JavaScript charting frameworks in Microsoft Access.
-
twinBASIC at Access DevCon Vienna 2024: (Mar 11, 2024) Join me at Access DevCon Vienna 2024 for my presentation on creating MZ-Tools-style VBIDE addins using twinBASIC.
-
Final Lineup Announced for Access DevCon Vienna 2024: (Mar 20, 2024) The final lineup is in for Access DevCon Vienna 2024. Check out the speakers and all 12 presentation topics. And don't forget to register!
-
Access NewsCast with Karl Donaubauer: Episode 8: (Apr 4, 2024) Catch up on the latest news from the Access world in episode 8 of Karl's webcast, with guests Juanjo Luna, Alessandro Grimaldi, and fan favorite, Viktoria.
-
Sun, Sand, and Access: The 2024 Developer Conference in Valencia, Spain: (May 15, 2024) The key to a great conference is a great host. Stories from my time at the 2023 MVP Summit with Juanjo Luna show he's the perfect man for the job.
-
Microsoft Announces End of RegEx Support for VBA: (May 23, 2024) We finally have an official timeline for when Microsoft will be dropping support for VBScript--and what impact that will have on VBA developers.
-
ActiveX Disabled by Default in Office LTSC 2024: (Sep 18, 2024) The slow death of Microsoft's desktop application capabilities marches on as another COM technology struggles against a grim fate.
API
- ["API" tag page]: Show all articles with the tag "API" (including those where "API" is a secondary tag).
Archive
- ["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...
AUG Video Recap
- ["AUG Video Recap" tag page]: Show all articles with the tag "AUG Video Recap" (including those where "AUG Video Recap" is a secondary tag).
-
Modern Access Interfaces: Form Resizing Solutions with Greg Regan: (Nov 25, 2024) Form Resizing Solutions in Microsoft Access: Making Applications Work Across Different Screen Resolutions (an Access User Group talk with Greg Regan)
-
Auto-Closing Access Applications: (Nov 27, 2024) A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
-
Migration Planning - Access to SQL Server: (Dec 1, 2024) SQL Server Migration Planning: A Strategic Approach to Transitioning from Access (an Access User Group talk with Kent Gorrell)
-
Intro to the Monaco SQL Editor with Maria Barnes: (Dec 3, 2024) Learn about the new Monaco SQL Editor feature in Microsoft Access (an Access User Group talk with Maria Barnes).
-
Web APIs in Access with George Young: (Dec 8, 2024) Using Web APIs in Microsoft Access: Connecting Access Applications to Online Services (an Access User Group talk with George Young)
AutoHotKey
- ["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.
Backwards Compatibility
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
-
Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
-
How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
-
Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
-
Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Combo Boxapalooza!: (Jun 4, 2021) Join me at 9 AM EDT on Friday, June 18th, where I'll help you unlock the true potential of my favorite Access control: the combo box.
- Are You an Access Developer in Northeast Pennsylvania?: (Oct 25, 2021) Calling all (current or aspiring) Access developers in Northeast PA: we have an immediate job opening at Grandjean & Braverman, Inc.
- Microsoft Access MVP: (Nov 1, 2021) Say hello to the newest Microsoft MVP Awardee for Office Apps & Services (MS Access).
- Access Roadmap Update: (Nov 15, 2021) Microsoft has recently updated the Access roadmap for 2021 and beyond. Check out what's on the horizon for the next 14 months.
- Access Dataverse Connector Presentations: (Dec 1, 2021) A list of past and upcoming presentations on the Access Dataverse connector with Access Program Manager Michael Aldridge.
- Access NewsCast with Karl Donaubauer: Episode 1: (Dec 15, 2021) The very first edition of Access News with Karl Donaubauer was released today. Catch up on the latest news and updates in this 30-minute video.
- Upcoming Presentation: Troubleshooting Query Performance: (Feb 9, 2022) Join me online on Thursday, March 17, for my presentation, "Troubleshooting Query Performance," to the Denver Area Access User Group.
- Office to Disable All VBA Code in Files from the Internet: (Feb 12, 2022) Beginning in April 2022, users will no longer have the option to manually enable VBA code in Office files downloaded from the internet.
- Access DevCon Vienna 2022: (Mar 9, 2022) Mark your calendars and register for Access DevCon Vienna! The event will be held virtually via MS Teams on April 28 and 29, 2022, from 10 AM - 4 PM EDT.
- Access NewsCast with Karl Donaubauer: Episode 2: (Mar 21, 2022) Catch up on the latest news and updates from the Access world in episode 2 of Karl's webcast, featuring Thomas Pfoch's Access map tool.
- IE11 Retirement FAQ for Access Apps: (Apr 2, 2022) Internet Explorer 11 will reach end-of-life before we have an Edge-based browser control. Read on to learn how this will affect Access developers.
- twinBASIC DevCon Vienna: Volume 2: (Apr 4, 2022) It's back! This year's Access DevCon Vienna will feature twinBASIC for the second year in a row. This time around the focus is on practical uses for Access developers.
- Building Ribbon Interfaces in Code: (May 26, 2022) Join me online on Wednesday, July 6, for my presentation "Building Ribbon Interfaces in Code" to the Access Europe user group.
- What Happened to the Access Roadmap: (May 31, 2022) Don't be (too) alarmed about the lack of feature development shown on the Access public roadmap. Access isn't dead...you just need to know where to look.
- Access at Microsoft Build 2022: (Jun 14, 2022) You'll never guess what the Access team talked about at the recent annual Microsoft Build conference. I'll give you a hint: it rhymes with "beta curse."
- Office Apps Won't Run on Windows Server After October 2025: (Jun 30, 2022) Earlier this month, Microsoft quietly announced the end of support for running (most) Office apps on Windows Server at the end of 2025.
- Microsoft Backtracks (Temporarily?) on Policy to Block All Macros with Mark of the Web: (Jul 7, 2022) Microsoft official announces in blog comments (!) that they are rolling back their recently implemented VBA-blocking policy.
- vbWatchdog v4 Released: (Jul 29, 2022) Version 4 of vbWatchdog just got released. If you don't already own a license for it, you should. And if you do, you should upgrade before August 31, 2022.
- Timeline for VBA Macros Blocked by Default in Microsoft Office: (Sep 26, 2022) Enterprise customers are next in line to have macros blocked by default in Office files from the web. The policy addresses a real problem, but does it actually help?
- Access NewsCast with Karl Donaubauer: Episode 4: (Oct 7, 2022) Catch up on the latest news and updates from the Access world in episode 4 of Karl's webcast, with guests Colin Riddington, Wayne Phillips, and, of course, Viktoria.
- Prepare for the Upcoming Death of IE11: (Oct 28, 2022) The grim reaper takes IE11 for good on February 14, 2023. Prepare for the inevitable now to avoid unnecessary Valentine's Day pain.
- Access DevCon Vienna 2023: April 27-28: (Feb 27, 2023) The annual Access DevCon Vienna conference will be held April 27-28, 2023. Check out this year's lineup and get registered today.
- Richard Rost: Newest Access MVP: (Feb 28, 2023) The Access video king is back on the MVP rolls. Richard Rost earned the MVP award for the third time and his first since 2015.
- New Edge Browser Control Now Available in Preview and Beta Versions of Microsoft Access: (Mar 15, 2023) It's finally (almost) here. The new Edge Browser control is finally available for testing in Insider versions of Microsoft 365.
- Final Lineup Announced for Access DevCon Vienna 2023: (Mar 21, 2023) The final lineup is in for Access DevCon Vienna 2023. Check out all 12 presentation topics and speakers. And don't forget to register!
- Edge-Based Browser Control Officially Released: (May 5, 2023) It's officially here. The new Edge-based web browser control for Microsoft Access is now Generally Available for Microsoft 365 versions 2304 and later.
- UPDATE: Office Apps WILL Run on Windows Server After October 2025: (May 17, 2023) Earlier this year, Microsoft quietly reversed its decision to end support for running Office apps on Windows Server at the end of 2025.
- Upcoming Presentation: Form Templates: (Jun 9, 2023) Join me online on Thursday, June 15, for my presentation, "Form Templates in Microsoft Access," to the Denver Area Access User Group.
- DevHut.Net Goes Dark: (Jun 26, 2023) Much like the legendary Keyser Soze, Daniel Pineault's renowned Microsoft Access website--DevHut.net--suddenly disappeared last week.
- Coming Soon: Access Developer Survey: (Jul 21, 2023) MAJOR ANNOUNCEMENT: NoLongerSet will be launching its inaugural Access Developer Survey soon. I need your help!
- Python in Excel: (Aug 23, 2023) Microsoft just announced a built-in Python worksheet function for Excel. When can we expect similar love for Access?
- Microsoft Announces the Death of VBScript: (Nov 1, 2023) As seems to be their new modus operandi, Microsoft has quietly rolled a hand grenade into the VBA development world with very little fanfare.
- Upcoming Presentation: Streamline Your Import/Export Spec Workflow with VBA Classes: (Nov 9, 2023) Join me online on Wednesday, December 6, for my presentation "Streamline Your Import/Export Spec Workflow with VBA Classes" to the Access Europe user group.
- Dropping `#If VBA7 Then` From API Declares: (Dec 21, 2023) Plus, step-by-step instructions for restoring the `#If VBA7 Then` code construct if you still need to support Office 2007 or earlier.
- Access Day 2024: (Jan 18, 2024) Come join the Microsoft Access team, several Access MVPs (including me), and other fellow Access developers in Redmond, WA, on March 15, 2024.
- Major Release of the Microsoft Access Version Control Add-in: (Feb 7, 2024) Version 4.x of Adam Waller's msaccess-vcs-addin has been officially released today, featuring a ribbon toolbar, SQL formatting, and basic SQL Server schema support.
- Upcoming Presentation: Better Access Charts by Thomas Möller: (Mar 1, 2024) Thomas Möller is back with a much-anticipated follow-up to his earlier presentation on incorporating JavaScript charting frameworks in Microsoft Access.
- twinBASIC at Access DevCon Vienna 2024: (Mar 11, 2024) Join me at Access DevCon Vienna 2024 for my presentation on creating MZ-Tools-style VBIDE addins using twinBASIC.
- Final Lineup Announced for Access DevCon Vienna 2024: (Mar 20, 2024) The final lineup is in for Access DevCon Vienna 2024. Check out the speakers and all 12 presentation topics. And don't forget to register!
- Access NewsCast with Karl Donaubauer: Episode 8: (Apr 4, 2024) Catch up on the latest news from the Access world in episode 8 of Karl's webcast, with guests Juanjo Luna, Alessandro Grimaldi, and fan favorite, Viktoria.
- Sun, Sand, and Access: The 2024 Developer Conference in Valencia, Spain: (May 15, 2024) The key to a great conference is a great host. Stories from my time at the 2023 MVP Summit with Juanjo Luna show he's the perfect man for the job.
- Microsoft Announces End of RegEx Support for VBA: (May 23, 2024) We finally have an official timeline for when Microsoft will be dropping support for VBScript--and what impact that will have on VBA developers.
- ActiveX Disabled by Default in Office LTSC 2024: (Sep 18, 2024) The slow death of Microsoft's desktop application capabilities marches on as another COM technology struggles against a grim fate.
- ["API" tag page]: Show all articles with the tag "API" (including those where "API" is a secondary tag).
Archive
- ["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...
AUG Video Recap
- ["AUG Video Recap" tag page]: Show all articles with the tag "AUG Video Recap" (including those where "AUG Video Recap" is a secondary tag).
-
Modern Access Interfaces: Form Resizing Solutions with Greg Regan: (Nov 25, 2024) Form Resizing Solutions in Microsoft Access: Making Applications Work Across Different Screen Resolutions (an Access User Group talk with Greg Regan)
-
Auto-Closing Access Applications: (Nov 27, 2024) A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
-
Migration Planning - Access to SQL Server: (Dec 1, 2024) SQL Server Migration Planning: A Strategic Approach to Transitioning from Access (an Access User Group talk with Kent Gorrell)
-
Intro to the Monaco SQL Editor with Maria Barnes: (Dec 3, 2024) Learn about the new Monaco SQL Editor feature in Microsoft Access (an Access User Group talk with Maria Barnes).
-
Web APIs in Access with George Young: (Dec 8, 2024) Using Web APIs in Microsoft Access: Connecting Access Applications to Online Services (an Access User Group talk with George Young)
AutoHotKey
- ["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.
Backwards Compatibility
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
-
Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
-
How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
-
Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
-
Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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...
- ["AUG Video Recap" tag page]: Show all articles with the tag "AUG Video Recap" (including those where "AUG Video Recap" is a secondary tag).
- Modern Access Interfaces: Form Resizing Solutions with Greg Regan: (Nov 25, 2024) Form Resizing Solutions in Microsoft Access: Making Applications Work Across Different Screen Resolutions (an Access User Group talk with Greg Regan)
- Auto-Closing Access Applications: (Nov 27, 2024) A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
- Migration Planning - Access to SQL Server: (Dec 1, 2024) SQL Server Migration Planning: A Strategic Approach to Transitioning from Access (an Access User Group talk with Kent Gorrell)
- Intro to the Monaco SQL Editor with Maria Barnes: (Dec 3, 2024) Learn about the new Monaco SQL Editor feature in Microsoft Access (an Access User Group talk with Maria Barnes).
- Web APIs in Access with George Young: (Dec 8, 2024) Using Web APIs in Microsoft Access: Connecting Access Applications to Online Services (an Access User Group talk with George Young)
AutoHotKey
- ["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.
Backwards Compatibility
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
-
Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
-
How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
-
Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
-
Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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.
- ["Backwards Compatibility" tag page]: Show all articles with the tag "Backwards Compatibility" (including those where "Backwards Compatibility" is a secondary tag).
- Adding Procedure Parameters Without Breaking Backwards Compatibility in VBA: (Nov 22, 2022) Sometimes you need to add a parameter to a Function or Sub in VBA. But you don't need to break all of your calling code to do it.
- How to Use VBA to Set the ControlSource Property of an Access Image Control (and Other Deeply Hidden Object Properties): (Apr 5, 2023) Ever wonder why you can set some values in the form/report designer Property Sheet but not in VBA? You may just need this well-hidden workaround.
- Discoverability vs. Compatibility: The Dilemma of Evolving the Access Object Model: (Mar 18, 2024) Stringly-typed properties: a necessary evil for maintaining backward compatibility in Access?
- Refactoring Procedure Signatures: The Do's and Don'ts: (Mar 26, 2024) Best practices for modifying procedure signatures while maintaining backward compatibility.
Basic
- ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
-
It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
-
One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
-
VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
-
Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
-
Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
-
Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
-
Pseudocode Programming Practice: (Jan 23, 2021) 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.
-
Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
-
The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
-
The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop.
And, oh yeah, save before testing!
-
The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
-
Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
-
Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
-
DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
-
Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
-
Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
-
Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
-
KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
-
Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
-
Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
-
Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
-
Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
-
Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
-
Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
-
Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
-
Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
-
How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
-
What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
-
How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
-
The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
-
Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
-
The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
-
How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
-
How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
-
Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
-
The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
-
Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
-
The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
-
All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
-
Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
-
Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
-
How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
-
Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
-
Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
-
Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
Best Of
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- It Takes Two: (Sep 5, 2020) Microsoft Access is both a rapid application development (RAD) environment and a file-based database system. It is actually quite capable in each area. But they are two fundamentally different functions.
- One if ByRef, and Two if ByVal: (Sep 19, 2020) Arguments in VBA are passed by reference by default. What does that mean? And what are the differences between passing by reference and by value?
- VBA and Unicode: (Dec 6, 2020) VBA and Unicode go together like Bailey's and Lime. But pretending the problem doesn't exist won't make it go away. Even for us Americans.
- Checklist: Is Your Access App GOOD?: (Dec 17, 2020) GOOD. Better. Best. Does your Access application clear the lowest bar for quality?
- Unicode-Friendly MsgBox: (Dec 24, 2020) There's a great big world outside of the ANSI bubble. Make every MsgBox in your program Unicode-safe in no time at all with this drop-in replacement.
- Constructing Version Numbers: (Jan 8, 2021) Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
- Pseudocode Programming Practice: (Jan 23, 2021) 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.
- Proper Use of Global State: (Jan 24, 2021) With great power comes great responsibility. Use global variables wisely.
- The Global Form: (Jan 25, 2021) Storing global variables on a hidden form has some distinct advantages over storing them in VBA.
- The Danger of Do Loops: (Feb 26, 2021) If you're going to write a Do Loop, don't forget to update whatever it is you're using to break out of said loop. And, oh yeah, save before testing!
- The Extra Resume: (Feb 27, 2021) Want an easy way to jump to the line that raised the error AND avoid the infinite loop time bomb? Add an extra Resume.
- Watching and Waiting: (Mar 5, 2021) Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
- Looping Through a List of Items: (Apr 2, 2021) Here's a quick and dirty way to loop through a list of items in VBA.
- DRY: Don't Repeat Yourself in VBA: (Apr 25, 2021) A journey from basic to advanced, covering functions, subroutines, user defined types, class modules, WithEvents, interfaces, and even code generation.
- Event-Driven Programming in VBA: (Apr 26, 2021) Event-driven programming may sound complicated, but the concept is really quite simple.
- Navigating Continuous Forms: (Apr 28, 2021) If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
- Handling Keyboard Events in Access: (Apr 29, 2021) This beginner article will step you through the process of how to begin writing code that runs when a user presses a key on the keyboard.
- KeyCode and Shift Arguments: (Apr 30, 2021) The KeyDown and KeyUp events include KeyCode and Shift arguments to identify which keys the user pressed. Let's explore those arguments in more detail.
- Field Comments on Linked Access Tables: (May 25, 2021) In part 1 of this series on field comments, we discuss maintaining column descriptions on tables linked to MS Access back-end files.
- Easy Access to Field Descriptions: (May 29, 2021) The ExtractFieldComments() function returns a dictionary of field names and their descriptions from a TableDef object.
- Field Comments on Linked Tables: (Jun 2, 2021) In this 6-part series, I cover everything you need to know about field descriptions for linked tables with Access and SQL Server back-end databases.
- Combo Box: Behavior Deep Dive: (Jun 5, 2021) Join me as I take you on an animated gif guided tour of the default behavior of the Microsoft Access combo box, with emphasis on the autocomplete feature.
- Anatomy of a CRUD App: (Jun 30, 2021) Microsoft Access is a great platform for developing desktop CRUD apps. But what the heck is a CRUD app?
- Split Your Microsoft Access Applications...Or Else: (Jul 13, 2021) "Ghostbusters" has some important lessons to teach us about Access application development.
- Poor Man's Status Bar in VBA: (Jul 24, 2021) 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.
- Avoid DoCmd.RunSQL in Microsoft Access: (Aug 3, 2021) 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.
- How to Pause Your VBA Code For a Set Amount of Time: (Aug 9, 2021) 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.
- What the Vancouver Stock Exchange Can Teach Us About Rounding Numbers in VBA: (Aug 18, 2021) So you think you know how to round decimals. Do you, though? There may be more to it than you think.
- How to Customize the Access Ribbon on a Developer Machine: (Sep 2, 2021) This step-by-step guide shows you how to customize the Microsoft Access ribbon and add missing commands.
- The Difference Between Good and Bad Code Comments: (Oct 8, 2021) The difference between good and bad comments explained in under 25 words.
- Beware the BETWEEN: (Oct 13, 2021) Using the BETWEEN clause with date-time fields may lead to unexpected results. There's a safer alternative.
- The QBE Window: Training Wheels for Access Developers: (Oct 15, 2021) If you're new to relational databases, the QBE window is the solution to--and cause of--many of your query problems.
- How to Loop Through a List of Strings in VBA: (Dec 16, 2021) Looking for a quick and simple way to loop through a list of strings? These 4 lines of code are all you need.
- How to Pause VBA Code: (Jan 14, 2022) A simple Windows API call makes for a reliable and efficient way to pause your VBA code. Much better than a "do-nothing loop."
- Microsoft Access Acronyms: (Jan 28, 2022) Bookmark this handy reference so the next time you come across an Access acronym that you don't recognize, you will have a quick way to look it up.
- The Strange Behavior of Null: (Mar 18, 2022) When are two identical values not equal? When they're both Null! If you are a Microsoft Access developer, you need to understand how (and why) this works.
- Learn VBA From a Master: (Apr 8, 2022) Philipp Stiefel is on a very short list of people who I would pay to teach my employees how to write VBA.
- The Single Most Important Concept for Understanding Relational Databases: (Dec 27, 2022) If you're coming to the database world from the spreadsheet world, this one key concept will help you make the necessary mindset shift.
- All About Indenting: (Jan 10, 2023) Do you obsess over the smallest details of the code-writing process? If not, you might want to skip this article. Don't say I didn't warn you...
- Why You Should Always Use Option Explicit in VBA: (Apr 18, 2023) Don't let typos and logic errors ruin your VBA code. Read our latest blog post to learn about the importance of Option Explicit and how to use it.
- Should you install 32-bit or 64-bit Access in 2023?: (May 19, 2023) Which version of Access (and/or Office) should you install: 32-bit or 64-bit? We go way deep into the differences and similarities between the two options.
- How Many Forms and Reports Should Go in the Back-End Database File?: (Oct 13, 2023) Spoiler alert! The correct answer is zero.
- Local vs. Linked Tables in Microsoft Access: (Oct 31, 2023) An introduction to the differences between local and linked tables in Microsoft Access, including five situations where local tables are the better choice.
- Creating and Editing Import Specifications via the Wizard: (Nov 3, 2023) For one-off text file data imports, it's hard to beat the simplicity of Microsoft Access's built-in wizard.
- Using the Wizard to Export to Text Files with Microsoft Access: (Dec 5, 2023) In an effort to remain simple, the Access export to text file wizard manages to do the opposite, making simple updates to export specs unnecessarily cumbersome.
- ["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
- ["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
- ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
-
MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
-
Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
-
Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
-
Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
-
Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
-
Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
-
Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
-
Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
-
Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
-
BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
-
Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
-
WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
-
Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
-
BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
-
Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
-
BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
-
Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
-
RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
-
Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
-
Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
-
Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
-
Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
-
Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
-
Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
-
Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
-
Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
-
Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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).
- MS Access Report Horizontal Scroll Bar Bug: (Apr 1, 2021) When certain reports open, the horizontal scroll bar gets drawn on the screen and then gets stuck in its original draw location.
- Bug Alert: vbWatchdog: (May 31, 2021) How to fix the E_VBWATCHDOG_UNSUPPORTED_VBAVERSION error.
- Bug Alert: Malwarebytes: (Sep 25, 2021) New behavior-matching algorithms in Malwarebytes block execution of Access applications that call out to the Shell function.
- Compact on Close Danger: (Oct 21, 2021) Compact on Close. It seems innocent enough. But lurking under this seeming convenience is the spectre of corruption just lying in wait.
- Access Bug Alert: Errors When Opening Network Database Files: (Dec 17, 2021) If you started receiving the error "File in use" or "Could not lock file" in December 2021, you may be the victim of an Access bug. Here's how to fix it.
- Partial Workaround for the "Could not lock file" Bug: (Dec 28, 2021) This experimental function could help you avoid the "Could not lock file" error when running the OpenDatabase method of a DBEngine object.
- Patching Access 2013 Runtime to Fix "File Already In Use" Bug: (Jan 8, 2022) Step-by-step process to patch the 2021 Holiday Bug for Office/Access 2013. These same steps can be adapted to patch other versions, too.
- Bug Alert: Can't Access Shared Folders via UNC Alias: (Jan 18, 2022) UNC aliases are a great way to set up development environments for Access applications that rely on UNC paths. It's too bad Microsoft broke them.
- Bug Alert: Cannot Open Any More Tables/Databases: (Feb 5, 2022) Check out the latest bug release from Microsoft: "Cannot open any more tables/databases.", .laccdb file remains, msaccess.exe hangs, and more...
- BUG ALERT: No Current Record: (May 11, 2022) An Access bug introduced in the latest Patch Tuesday update caused major headaches for developers around the world today.
- Office FeatureGates: How Microsoft Can Break and Fix Their Applications in Under 24 Hours: (May 30, 2022) Microsoft Access regularly breaks following Office updates. But, sometimes, it *starts* working again just as suddenly. Here's how that works.
- WARNING: Do NOT Declare DAO Fields As Field2, Field3, etc.: (Jul 13, 2022) While declaring DAO Field objects as Field2 will get you additional IntelliSense, it comes at the risk of breaking working code when MS releases a new Field type.
- Bug Alert: Wizards Don't Work with MVFs and Attachment Fields: (Aug 22, 2022) Beginning with version 2006, Access hangs when running the Report or Labels Wizard on a table with a multi-valued field (MVF) or attachment field.
- BUG ALERT: CurrentDb and DAO.OpenDatabase: (Oct 6, 2022) If you are getting intermittent error messages saying you don't have exclusive access to your database, then this workaround may help.
- Bug Alert Follow-Up: CurrentDb and DAO.OpenDatabase: (Oct 10, 2022) A member of the Microsoft Access engineering team provides an official explanation for the "buggy" CurrentDb and DAO.OpenDatabase behavior.
- BUG ALERT: FortiClient VPN and Windows Update KB5018410: (Oct 13, 2022) A recent Windows Update broke my FortiClient VPN. Learn which update was responsible, how to uninstall it, *and* how to keep it from coming back.
- Roll Back to Previous Version of Office When on Microsoft 365 Current Channel (Preview): (Jan 24, 2024) Rolling back to previous versions of Microsoft 365 (nee Office 365) is hard enough in the best-case scenario. Troubleshooting problems is a nightmare.
- RefreshLink Bug: "Primary key already exists": (Feb 28, 2024) Workarounds, status updates, and forum discussion links for the RefreshLink bug from the fine folks at AccessForever.org.
- Bug Alert: InStr() in WHERE Crashes Access: (Apr 15, 2024) Using string expressions like InStr(), InStrRev(), and Replace() in the WHERE clause of a query can crash Access in certain recent releases.
- Bug Fix: RefreshLink: (Apr 22, 2024) A fix for an error that impacted some users with linked SQL Server tables was announced in Microsoft's latest monthly bug fix roundup.
- Bug Alert: Scroll Wheel Causes Annoying Ding: (May 17, 2024) Did you ever notice Microsoft Access occasionally "dings" when you scroll with the mouse wheel in datasheets and continuous forms? You're not going crazy!
- Bug Alert: Version 2405 Causing Form Performance Problems and Increased Crashing of Access: (Jun 21, 2024) Our friends at AccessForever.org have all the details on the latest bug affecting the Current Channel of Microsoft Access.
- Generic Text Only Printer Driver Bug: (Jun 26, 2024) "There isn't enough free memory to update the display." Recent Windows Updates are causing this bug to appear on reports that use the Generic/Text Only Printer Driver.
- Bug Fix: Access Version 2406 Fixes the Slow Forms and Crashing Bug From 2405: (Jun 28, 2024) A bug fix is here for the error introduced with last month's Access update (which has been causing slow form performance and occasional crashing for affected users).
- Bug Fix: Generic / Text Only Printer Driver Memory Error: (Jul 14, 2024) Microsoft released a fix for the error, "There isn't enough free memory to update the display," when printing to the Generic/Text Only Printer Driver.
- Access + Outlook PDF Bug: (Jul 21, 2024) Has Outlook recently started freezing when trying to send PDFs via email from Microsoft Access? If so, you may be a victim of the latest bug from Microsoft.
- Bug Alert: Version 2408 Causes msaccess.exe to Hang on Exit: (Sep 3, 2024) Access Version 2408 is causing two widespread bugs: msaccess.exe hangs around after closing Access and Error 3048, "Cannot open any more databases."
Bug Types
- ["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
- ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
-
My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
-
My Biggest Business Mistake: (Jan 6, 2021) 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.
-
Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
-
Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
-
Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
-
The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
-
The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
-
How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
-
Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
-
Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
-
Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
-
The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
-
Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
-
Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
-
Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
-
The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
-
Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
-
Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
-
The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
-
Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
-
The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
-
Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
-
Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
-
The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
-
Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
-
Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
-
Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
-
Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
-
Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
-
I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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).
- My Personal Journey: (Jan 5, 2021) Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
- My Biggest Business Mistake: (Jan 6, 2021) 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.
- Pricing Annual Technical Support: (Jan 7, 2021) How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
- Google Analytics Alternatives: (Jan 11, 2021) Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
- Site Search for NoLongerSet!: (Apr 5, 2021) It was long past time I added sitewide search to this Ghost-powered blog. I could have used Solr, ElasticSearch, or Google. I chose something else...
- The Biggest Mistake Access Developers Make When Writing a Custom Software Proposal: (Jun 19, 2021) I made this mistake myself for years. The good news is it is very easy to fix!
- The Most Profitable Mindset Shift for Access Consultants: (Jun 22, 2021) What do you call it when a client uses emotional language on multiple occasions to describe the same problem? A business opportunity.
- How Access Developers Can Charge Their Existing Clients More (Without Feeling Guilty): (Jun 23, 2021) When you offer only a single option, a proposal is an ultimatum. Add in some monopoly power, and that proposal can start to feel like extortion.
- Prices vs. Estimates (And How to Educate Your Clients on the Difference): (Jun 25, 2021) A price is a fixed amount. An estimate is just a guess. But try telling that to an angry client at the end of an over-budget project. There's a better way.
- Manage Email Addresses for Multiple Domains with One Gmail Account Using Opalstack: (Oct 11, 2021) Some practical advice on how to configure email addresses for multiple domains so that you can still send and receive from a single Gmail account.
- Configuring a Send-Only Email Address in Outlook 2019: (Oct 13, 2021) How to add an account in Outlook 2019 where the user name is NOT the same as the email address.
- The Hour-Tracking Journey: (Oct 22, 2021) From Palm Pilots to Google Sheets to Clockify, I take a trip down hour-tracking memory lane.
- Level Billing: A More Predictable Way to Bill Hourly: (Nov 2, 2021) If you bill by the hour, you probably have clients with whiplash as their invoices yo-yo from month to month. Provide them predictability with level billing.
- Comparative Advantage: (Nov 8, 2021) One person can be more productive than another in every way, and yet, by trading freely with each other, both sides can come out ahead.
- Shared Reports in Clockify: (Nov 18, 2021) Never waste time preparing a detailed list of hours for your clients again using this handy feature from Clockify.
- The Most Important Rule in Client Contracts: (Aug 3, 2022) This rule can be the difference between project success and project failure; joy and misery; profit and loss.
- Sole Proprietorship vs. Partnership vs. LLC vs. S Corp. vs. C Corp.: (Aug 4, 2022) What's the best type of business for you? It depends on where you're at on your journey.
- Impact vs. Effort: A Simple Formula for Estimating ROI: (Mar 28, 2023) There are two variables that determine the financial success of a software project. You only control one.
- The Value Matrix: A Framework for Prioritizing Development: (May 11, 2023) Software developers are content writing great applications, but consultants understand the importance of delivering big business impact.
- Reader Question: How Do I Make Value-Based Pricing Work?: (May 23, 2023) Value-based pricing is not a synonym for fixed-bid pricing. To make it work, you need to focus on the business value you can generate for the client.
- The Secret to a Profitable Career as an Access Consultant: (Sep 11, 2023) It may not be flashy, but it is effective.
- Challenges in Estimating Software Development: Complicated vs. Complex Processes: (Sep 13, 2023) In software development, some processes are easier to estimate than others. Whether the process is complex or complicated has a profound impact on estimate reliability.
- Productized Services: Finding the Sweet Spot Between Products and Services: (Oct 16, 2023) If you don't relish the thought of running sales meetings and writing proposals, productized services may be a good fit for you.
- The Worst Way to Price Software Development Work: (Nov 13, 2023) There are several ways to price software development work, each with its own pros and cons. But there is one option with nothing but cons.
- Profit Centers vs. Cost Centers: (Nov 24, 2023) Both impact a company's net profits, but one tends to be a better fit for most Microsoft Access projects.
- Positioning: What You Need to Know to Run an Access Business: (Apr 8, 2024) The clearer you are about who you don't work with, the more likely you are to attract those you do.
- Tactics vs. Operations vs. Strategy: (May 27, 2024) Want to build a successful long-term business? Take the time to understand these concepts (and apply them in the right order!).
- Choosing and Executing a Strategy: A 4-Step Approach: (May 28, 2024) Forget the military analogies. What do strategy, operations, and tactics look like inside a software development company?
- Software Pricing Battle Royale: (Aug 9, 2024) Hourly Billing vs. Value-Based Pricing: What's the morally right way to bill for software development? Two software business superheroes face off.
- I Paid $600,000 per Hour for LASIK Eye Surgery: (Sep 4, 2024) And that's why ophthalmologists don't bill by the hour.
ChatGPT
- ["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
- ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
-
Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
-
Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
-
Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
-
clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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).
- Caching Object Instances in VBA Classes: (Feb 7, 2022) Simplify the object initialization code in your class modules without sacrificing performance using this easy technique.
- Great Intro to Class Programming in VBA: (Apr 5, 2022) Former Access MVP Ben Clothier's primer on class programming in VBA should be required reading for all Access developers.
- Better Global Constants in VBA with Dot-Driven Development: (Mar 27, 2023) My global constant "C" class--with PredeclaredId = True--is a great alternative to traditionally-declared global Public Const's.
- clsLog: A VBA Logging Framework: (Jul 19, 2024) Introducing clsLog, the no-frills logging framework. Prepare to supercharge your Access logging with the closest thing to NLog or Log4j in the VBA world.
Code Complete
- ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
-
Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
Code Library
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
-
Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
-
Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
-
One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
-
The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
-
Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
-
Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules?
A: Version control and backward compatibility zealotry.
-
My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
-
Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
-
Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
-
Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
-
Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
-
Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
-
Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
-
Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
-
"Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
-
Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
-
KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
-
Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
-
The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
-
Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common
example is exporting data to a text file, such as a .csv. Sometimes the user
chooses to overwrite the existing file, and sometimes the program is hard-coded
to save to a specific filename.
Oftentimes, the user wants to immediately
-
Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
-
Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
-
Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
-
Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
-
Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
-
Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
-
Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
-
VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
-
IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
-
Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
-
Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
-
Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
-
Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
-
RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
-
RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
-
Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
-
Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
-
Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
-
Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
-
Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
-
Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
-
How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
-
Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
-
Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
-
Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
-
Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
-
Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
-
Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
-
Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
-
weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
-
The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
-
How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
-
Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
-
How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
-
Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
-
Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
-
Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
-
A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
-
A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
-
How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
-
Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
-
How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
-
Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
-
How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
-
How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
-
The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
-
Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
-
Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
-
Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
-
Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
-
SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
-
TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
-
XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
-
GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
-
Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
-
LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
-
clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
-
3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
-
SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
-
IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
-
CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
-
GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
-
LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
-
MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
-
EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
-
3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
-
UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
-
NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
-
ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
-
Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
-
A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
-
SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
-
WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
-
Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
-
Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
-
GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
-
GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
-
Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
-
Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
-
Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
-
Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
-
Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
-
CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
-
How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
-
LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
-
TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
-
ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
-
ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
-
FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
-
MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
-
4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
-
CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
-
How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
-
Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
-
clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
-
High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
-
Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
-
GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
-
Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
-
UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
-
GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
-
CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
-
GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
-
How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
-
How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
-
GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
-
FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
-
CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
-
loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Pseudocode Programming: Think First, Code Second: (Feb 9, 2024) Writing pseudocode before coding forces critical thinking, iterates on the best approaches, and enables programmers to implement complex logic flawlessly.
- ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
- Quoth thy SQL? Evermore!: (Sep 29, 2020) Solving the "O'Malley problem" with dedicated functions to sanitize our strings. Little Bobby Tables would be proud.
- Come Together: (Sep 30, 2020) Do you build strings in loops? Stop trimming the delimiter at the end of the loop. There's a better way.
- One Thing at a (Hundred) Times: (Oct 7, 2020) How to use Run() and GetTickCount() for some quick and dirty performance profiling. Come for the code, stay for the scolding on premature optimization.
- The Dependency Train: (Oct 17, 2020) Let's torture a train metaphor to illustrate the dangers of dependency chaining.
- Creating Optional Dependencies: (Oct 18, 2020) Using conditional compilation to avoid the "Dependency Train" problem.
- Code Library Updates: (Oct 29, 2020) Q: How do you manage updates to code library modules? A: Version control and backward compatibility zealotry.
- My Dirty Little Secret: (Nov 2, 2020) I don't use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a "guard clause" instead.
- Filling in the Blanks: (Nov 3, 2020) One of the keys to being a good developer is to make the *easy way* also be the *right way*. Exhibit A: the ControlIsBlank() function.
- Why so lazy, Access?: (Nov 4, 2020) Introducing FormIsOpen() and ReportIsOpen(), two simple functions to help deal with Access's laziness.
- Environmentally Friendly Access: (Nov 5, 2020) Using the Windows Registry to manage Production, Development, and Testing environments in #VBA and #MSAccess.
- Don't Settle for the "Status" Quo: (Nov 6, 2020) Wherein I wrap Access's built-in status bar functions inside a class module for more readable code.
- Part and Parse()-l: (Nov 8, 2020) Take the Tag property and OpenArgs argument to the next level. This function makes it easy to assign and extract multiple values from a single string.
- Listing External Table Sources: (Nov 9, 2020) Using the Parse() function to list linked tables by source. Use this when you want to refer to Linked Table Manager info while writing code.
- Now you have two problems: (Nov 16, 2020) Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. --Jamie Zawinski
- "Convenience" Date Functions: (Nov 24, 2020) The DateSerial function is easy to write, but it's not as easy to read. Let's make our code easier to read with some "convenience functions."
- Fun with Form Windows: (Nov 26, 2020) Using my FillAccessWindow function to resize Form and Report objects relative to the amount of available space on the Access canvas.
- KeepFormOnCanvas(): Get Back Here, Form!: (Nov 27, 2020) What happens if the user resizes their Access window so that our form can't open in its entirety? KeepFormOnCanvas() to the rescue!
- Converting Numbers to Text: (Nov 28, 2020) Need to print business checks directly from Microsoft Access? You'll need a way to convert numbers into text. The NumToString function does just that.
- The Subtle Dangers of Dir(): (Dec 1, 2020) If Len(Dir(FullPath)) > 0 Then 'the file exists. This potential bug patiently waits to pounce and ruin another poor programmer's day.
- Kill Failed? Let User Try Again: (Dec 2, 2020) My Access applications regularly need to overwrite existing files. A common example is exporting data to a text file, such as a .csv. Sometimes the user chooses to overwrite the existing file, and sometimes the program is hard-coded to save to a specific filename. Oftentimes, the user wants to immediately
- Text Files: Read, Write, Append: (Dec 4, 2020) There is beauty in simplicity. These three functions for reading, writing, and appending text files are simple, but effective.
- Writing Code with Code in VBA: (Dec 10, 2020) Can you write code with code in VBA? Yes. Should you write code wit--OH, BE QUIET YOU!!! Where's your sense of adventure? ;-)
- Clearing a List Box in Access: (Dec 21, 2020) Sometimes you need to wipe the slate clean and start fresh. Here's a simple function to do just that for an Access list box.
- Unicode-Safe Filtered Filename Lookups: (Dec 23, 2020) Need a Unicode-safe way to retrieve a list of filenames from a folder? And its subfolders? And filtered by filename? It's all here!
- Get a Handle on Window State: (Dec 28, 2020) Using the IsZoomed and IsIconic API calls to return the window state (minimized, maximized, or restored) of a form, report, or Access itself.
- Setting MultiSelect At Runtime: (Jan 14, 2021) 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.
- Federal Holidays in VBA: (Feb 1, 2021) How do you calculate US federal holiday observances in VBA? One option is to use brute force and skip the calculation altogether.
- VBA IsBusinessDay() Function: (Feb 2, 2021) A simple function that returns True except for weekends and US federal holidays.
- IsLastBusinessDayOfMonth() Function: (Feb 3, 2021) I bet you can't guess what this function does.
- Counting Weekdays in VBA: (Feb 4, 2021) This otherwise mundane function is made a bit more interesting through its use of the little-known VBA backslash operator, which performs integer division.
- Counting Business Days in VBA: (Feb 5, 2021) Counting business days is easy with the WeekDayCount() and FederalHolidays() functions. What's interesting is how we test the WorkingDayCount() function.
- Using TDD to Calculate Holidays in VBA: (Feb 6, 2021) This article takes you step-by-step through the Test Driven Design process, unencumbered by the complexity of any sort of testing framework.
- Joining Paths in VBA: (Feb 11, 2021) How many times have you gotten a runtime error because you had duplicate or missing backslashes in your file paths? Never again!
- RegOp Class for 64-bit VBA: (Feb 17, 2021) Updating a classic VBA registry reading and writing class module for 64-bit compatibility.
- RegOp Quick Tip: (Feb 18, 2021) Be respectful of your user's registry. Store all your applications' settings in a dedicated publisher subkey.
- Sticky Wicket: Looping by Month: (Feb 20, 2021) Some programming problems are difficult to solve. Others are difficult to solve clearly.
- Looping by Month: DateSerial: (Feb 21, 2021) The first approach to looping by month uses only the builtin VBA functions DateSerial() and DateDiff().
- Looping by Month: Custom Functions: (Feb 22, 2021) By using a couple of custom functions, we can write very readable loops that iterate one month at a time.
- Creating a Monthly Lookup Table: (Feb 23, 2021) Having a table where each record represents a single month can come in quite handy. Let's create such a table.
- Looping by Month: Lookup Table: (Feb 24, 2021) Have I ever used this method? No. Can I imagine a situation where it could be useful? Maybe. Should I write an article about it? Sure, why not.
- Looping by Month: Loop Until with DateAdd: (Feb 25, 2021) Reader Francesco Foti writes in with his own solution to the Looping by Month challenge.
- How to Set a Breakpoint Inside of an Access Query: (Mar 4, 2021) 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.
- Nothing To See Here: (Mar 22, 2021) Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
- Finding the Temporary Folder with VBA: (Mar 23, 2021) 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.
- Getting a Temporary File Name with VBA: (Mar 24, 2021) Here is a simple function to generate an unused temporary file name in VBA.
- Strongly-Typed Collections: The Easy Way: (Mar 27, 2021) Creating a strongly-typed collection class in VBA requires jumping through code export-import hoops. What if you didn't have to, though?
- Get Form By Control: (May 14, 2021) A VBA function that returns the first form parent of the control you pass to it.
- Microsoft Access: Check if Form Object is a Subform: (May 15, 2021) How do you check if the form object is a subform in Access without triggering a runtime error? Hint: this is a trick question.
- Get Top Form By Control: (May 17, 2021) A VBA function that returns the topmost form parent of any control you pass to it.
- weArrowKeyNav Class: (May 18, 2021) Do you want the up and down arrow keys to move to the previous and next records in a continuous Access form? Here's how to do that with only two lines of code.
- The One Function Every VBA Developer Needs in a WithEvents Class: (Jun 15, 2021) Your WithEvents event handlers will only run if you set the event property to "[Event Procedure]." Here's a safe and easy way to do that.
- How to Highlight the Current Record in a Continuous Form: (Jul 2, 2021) Step-by-step instructions for applying a custom highlight to the currently selected record in a continuous form in Microsoft Access.
- Fix for the error: "You can't hide a control that has the focus" in Microsoft Access: (Jul 7, 2021) The DefocusIfActive() procedure shifts the focus away from a control so that it may be hidden or disabled.
- How to Safely Hide Controls in Microsoft Access: (Jul 10, 2021) I *never* set the Visible property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2165.
- Quickly List the Properties of an Object in Access: (Aug 23, 2021) Here's a quick and dirty procedure to iterate through an Access object's Properties collection.
- Converting the DataTypeEnum Values to Equivalent VBA Types: (Oct 5, 2021) Two simple functions to convert DataTypeEnum values to descriptive strings and their VBA data type counterparts.
- Preventing File-Writing Race Conditions in VBA: (Dec 7, 2021) If you're waiting on an external process to write a file to disk, how can you be sure it's really done? This routine helps avoid (or at least rule out) some race conditions in VBA.
- A Safer Alternative to BETWEEN When Filtering Dates: (Dec 11, 2021) This convenient function generates defensive SQL statements to help you avoid the subtle dangers of the BETWEEN statement when filtering dates.
- A Function to Quote Literal Dates When Building SQL in VBA: (Dec 13, 2021) This improved version of my date-quoting convenience function eliminates a common source of date-handling ambiguity via the ISO date format.
- How to Check if VBA is Running in 64-bit Mode: (Dec 20, 2021) A simple function (or class property) that returns whether the VBA code is running under 32-bit mode or 64-bit mode.
- Automatically Cleaning Up Temporary Files on Program Exit: (Dec 22, 2021) A dead-simple way to clean up temporary files without having to worry about waiting until they are no longer in use.
- How to Remove Special Characters from a VBA String: (Dec 23, 2021) A simple function to remove special characters from a string in VBA. Useful for sanitizing file names, sheet names in Excel, and lots of other stuff.
- Convert CIDR Notation to IP Address Range in VBA: (Jan 22, 2022) A VBA function to convert from CIDR notation (192.168.1.1/24) to the corresponding IP range (192.168.1.0 - 192.168.1.255).
- How to Return the Precision and Scale of a Decimal Field in Access: (Feb 22, 2022) There's no way to use DAO to return the scale and precision of a Decimal field in Access. Luckily, there's an easy workaround using ADO.
- How to Check If Two Variant Values Are Equal (or Not) in VBA: (Mar 19, 2022) While tempting, you can't simply use the equality (=) or inequality (<>) operators to compare Variant values in VBA. Here's a safer alternative.
- The Pluralize Function: (Apr 1, 2022) You don't have to settle for messages like, "1 record(s) inserted." This simple function is an easy way to format strings for pluralization in VBA.
- Displaying Human Readable Time Spans: (Apr 13, 2022) The HumanizedSeconds() and ConvertToSeconds() functions work hand-in-hand to provide a general solution for storage and display of time spans.
- Displaying Very Long Human Readable Time Spans: (Apr 14, 2022) With 29-million-year time spans, you can handle almost any task (besides evolution, continental drift, and adding the LAA flag to MS Access).
- Printf Function: (Apr 19, 2022) User @wqweto's string interpolation VBA function has some neat tricks, like using Unicode's Private Use Area to get safe temporary placeholder characters.
- Show a Friendly Message When a Report Has No Data: (May 10, 2022) A handy function you can call from an Access report's Property Sheet to gracefully inform the user when their report has no data to display.
- SQL Server "Codify" Function: (May 20, 2022) This function will jump-start the process of converting long descriptions into meaningful abbreviations. It's great for creating "Code" columns in lookup tables.
- TagWrap() Function: (Jun 20, 2022) This convenience function helps you write more readable code when building strings with HTML-style opening and closing tags.
- XmlWrap() Function: (Jun 21, 2022) This convenience function helps you write more readable code when building Office Ribbon-flavored XML strings.
- GetAttr(): Ribbon XML String-Building Helper Function: (Jun 24, 2022) When you're building strings in code with lots of optional values--such as ribbon XML attributes--this simple function helps keep your code readable.
- Set Report Properties in Bulk: (Jun 27, 2022) Looking to set a report property, such as an event handler, to the same value for multiple reports? Use this routine to automate the whole process.
- LogToTempFile() Function: (Jul 4, 2022) A quick and dirty method for debugging large strings in VBA.
- clsApp: My Application-Wide MS Access Singleton Class Module: (Jul 11, 2022) I use many class modules in my applications, but this is the one I cannot live without.
- 3 Ways to Get and Set the TitleBar Text for an MS Access Application: (Jul 12, 2022) Here are three ways to set the Application Title for an MS Access application. My preferred method allows getting and setting with a single line of code.
- SelectedListBoxItems() Function: (Jul 14, 2022) It's not difficult to get the selected items from a multi-select list box, but it is tedious. This function makes it simple and easy.
- IMPROVED: SelectedListBoxItems() Function: (Jul 15, 2022) A clearer and (very slightly) more performant version of my SelectedListBoxItems function.
- CreateGuid: A Reliable Way to Generate GUIDs in VBA: (Aug 5, 2022) A well-tested method to generate GUIDs in both 32-bit and 64-bit VBA.
- GetTempPath: Using the Windows API for Maximum Performance: (Aug 8, 2022) If you are looking to maximize performance in VBA, using the Windows API will almost always be your best bet.
- LimitTextLength: Enforce Max Text Length for Unbound Text Boxes and Combo Boxes: (Aug 10, 2022) A handy function to enforce maximum string lengths for unbound text boxes and combo boxes in Microsoft Access.
- MakeSurePathExists: Using the Windows API to Create Missing Subfolders in VBA: (Aug 12, 2022) A Windows API function makes verifying (and creating, if necessary) a full folder hierarchy dead simple.
- EnsurePathExists: A Unicode-Safe Way to Create Missing Subfolders in VBA: (Aug 15, 2022) The EnsurePathExists function--based on the API function SHCreateDirectoryExW--is the ultimate tool for verifying and creating folder structures.
- 3 Ways to Create Missing Subfolders in VBA: (Aug 16, 2022) If you need to generate multiple levels of subfolders using VBA, these three functions will each get the job done.
- UseHand(): Changing the Mouse Cursor in Microsoft Access: (Aug 31, 2022) A classic Microsoft Access mouse cursor trick gets simplified and updated for 64-bit VBA compatibility.
- NewSort(): Sort a Continuous Form by Clicking on the Column Label: (Sep 1, 2022) Sort a continuous form in MS Access by simply pointing at a column label. These functions make it easy.
- ObscureInfo(): Hide Sensitive Information in Access Form Controls: (Sep 7, 2022) Avoid over-the-shoulder attacks and prevent accidental disclosures in your Microsoft Access forms with this easy-to-implement function.
- Getting the Temp Folder in VBA: (Sep 30, 2022) There are many ways to get the temporary folder in VBA. But if you look behind the curtain, there's really only one...
- A GUID-Based Temporary File Name Generator: (Oct 3, 2022) If you need a reliable and fast way to create lots of temporary file paths, a GUID-based filename generator has some compelling benefits.
- SetPredeclaredId(): Change the Hidden PredeclaredId Attribute of a VBA Class Module: (Oct 5, 2022) This simple function overcomes the lack of a hidden attribute editor for PredeclaredId values in the VBA development environment.
- WriteTempFile(): A Simple VBA Function to Save Text to a New Temporary File: (Oct 11, 2022) If you need to save a string to a temporary file in VBA, this simple function will do the trick.
- Writing Boilerplate Code by Hand is for Suckers: (Oct 17, 2022) Writing repetitive code may be a necessary evil in VBA, but it's a lot less tedious if you generate most of it in VBA itself.
- Create a Class Module from a String in Microsoft Access: (Oct 18, 2022) Generate VBA class modules from strings during design time using this simple function in Microsoft Access.
- GetLatestOdbcDriver(): Use VBA to get the Latest SQL Server ODBC Driver: (Dec 12, 2022) This simple VBA function will check the user's registry and return the latest ODBC driver from a list of supported drivers that you can customize.
- GetLatestOledbProvider(): Use VBA to get the Latest SQL Server OLE DB Provider: (Dec 14, 2022) This simple VBA function will check the user's registry and return the latest OLE DB provider from a list of supported providers that you can customize.
- Dt() Function v2: Handling Time-Only Date Values: (Dec 19, 2022) An important bug fix for my previously published date-wrapping VBA function that addresses an issue integrating time-only values with SQL Server.
- Dt() Function v3: Refactoring with Automated Tests: (Dec 20, 2022) Reader Brenda Bachtold provides a more readable version of my date-wrapping function. Automated doc tests prove that her version functions the same as mine.
- Converting VBA Long Color Values to RGB: (Dec 29, 2022) The VBA RGB() function converts red, green, and blue values into a VBA long integer color value. This simple function works in the other direction.
- Calculating Federal Holidays in VBA: Juneteenth Update: (Feb 14, 2023) An update to my VBA FederalHolidays(), IsBusinessDay(), and WorkingDayCount() functions with support for the new Juneteenth holiday.
- Creating Form Skeletons with VBA: (Feb 22, 2023) The DesignNewForm() routine is a good starting point for creating your own procedure to generate new form skeletons with a consistent UI design.
- CaptionCheck(): Verify All Forms and Reports Have a Caption: (Mar 9, 2023) This simple pre-deployment check will help save you the embarrassment of forgetting to set your form or report captions.
- How to Safely Disable Controls in Microsoft Access: (Apr 6, 2023) I *never* set the Enabled property of a form control directly. Instead, I use a convenience function so that I don't have to worry about run-time error 2164.
- LockControls() Function: Locking and Unlocking Multiple MS Access Controls in VBA: (Apr 7, 2023) This convenient function lets you lock or unlock multiple Access form controls with a single line of code.
- TryGetForm: Set a Strongly-Typed Form Object in Access VBA: (Apr 20, 2023) The TryGetForm function helps you convert "stringly-typed" code into "strongly-typed" code when working with Access forms in VBA.
- ptReplaceDeclaredValues(): A VBA Function to Update SQL in Pass-Through Queries: (Jun 1, 2023) Use this function to reliably replace declared values in a pass-through query.
- ShiftDate() Function: Intelligent Date Adjustments: (Jun 2, 2023) The ShiftDate() function provides intelligent date handling for your application by helping preserve month-end dates.
- FirstValidPath(): (Jun 12, 2023) Simplify your VBA code with the versatile FirstValidPath convenience function, which efficiently determines the first valid path from a list of potential matches.
- MergeLines(): A Handy Function for Building Address Blocks: (Jun 16, 2023) This handy little function takes care of the tedious chore of creating multi-line strings devoid of blank lines.
- 4 Keys to Building Generic Solutions in Code: (Jul 7, 2023) Building and maintaining a library of custom code procedures is an investment that provides compounding benefits over time.
- CascadeForm(): Prevent Multi-Instance Forms From Hiding Behind Each Other: (Jul 17, 2023) The CascadeForm() function introduces the cascading-window effect from the Windows operating system to Microsoft Access.
- How to Pause Code Execution Until a Form or Report is Closed (Without Using acDialog): (Aug 30, 2023) Do you need to pause your code until the user closes a form or report but are running into problems using acDialog? This simple function is your answer.
- Pause Code Until a Form is Closed or Hidden (without acDialog): (Sep 1, 2023) Pausing code execution until a form is closed OR hidden can be a handy feature. This function delivers that without the other constraints of acDialog.
- clsConcat: Blazing-Fast String Building Performance in VBA: (Sep 22, 2023) You don't need to understand how to pre-allocate a memory buffer in VBA to take advantage of this blazing-fast string builder class.
- High-Performance VBA String Concatenation with clsStringBuilder: (Sep 26, 2023) clsStringBuilder takes a collection-based approach to speed up string concatenation.
- Convenience Function for Passing Values Between Forms via a Hidden Global Form: (Sep 29, 2023) I don't always use a global form to stash user-provided values, but when I do, I use this GetInfo() function.
- GetInfoForm(): Get User Input Without Needing a Global Form: (Oct 3, 2023) The GetInfoForm() function simplifies the task of returning user input from an unbound form without stashing values in a hidden global form.
- Automating Temporary Data Cleanup in Access with the ClearTempTables() Procedure: (Oct 27, 2023) The ClearTempTables() procedure is a quick way to empty out temporary tables in your front-end Access files before deploying updates.
- UserPressed(): Break Out of a Long-Running Loop in VBA with the Escape Key: (Nov 2, 2023) This API call captures keyboard input from the user without relying on any of the form keyboard events.
- GetInnerAccessHwnd(): Retrieve the Window Handle to the Microsoft Access Canvas: (Dec 12, 2023) This function returns the window handle to the Microsoft Access "canvas", the inner portion of the application window where forms and reports are drawn.
- CenterForm(): Using the Windows API to Center Forms on the Access Canvas: (Dec 13, 2023) The form Auto-Center property is all you need in most cases. However, let's consider four different situations where my custom code might be a better fit.
- GetCanvas(): Convenience Function for Working with Windows API Calls in Access: (Dec 14, 2023) This simple function serves as a great foundation for manipulating the display of Microsoft Access forms and reports with a variety of Windows API calls.
- How to Set the Background Color of the Microsoft Access Application Window with VBA: (Dec 22, 2023) A series of Windows API calls will "repaint" the Microsoft Access canvas with the color of your choice. It is a bit rough around the edges, though...
- How to Open a File with its Default Application in VBA: (Jan 12, 2024) One of the handiest functions I use in my Access applications is this gem from Dev Ashish: fHandleFile(). Here's how to make it compatible with 64-bit VBA.
- GetCtlAtMouse(): A Reliable Way to Return the Current Control Object Under the Mouse Cursor in Access: (Jan 17, 2024) In this follow-up to my earlier article on the undocumented AccHitTest() method, we improve how we handle errors when the mouse is over an empty area of the form.
- FileIsOpen(): Check If Another User or Process Has a File Locked: (Apr 3, 2024) This simple function detects whether a file is already open in another application allowing you to handle such situations with grace and confidence.
- CompileCurrentAccessApp(): Use VBA to Create an ACCDE or MDE of the Currently Open Access File: (Apr 25, 2024) This function allows you to create an .accde or .mde file based on your current Access file with a single press of the F5 key.
- loggerTextFile: Log Messages to Text Files with clsLog--The VBA Logging Framework: (Jul 30, 2024) This "logger" class module integrates with our VBA logging framework--clsLog--to write messages to text files.
Code That Fits in Your Head
- ["Code That Fits in Your Head" tag page]: Show all articles with the tag "Code That Fits in Your Head" (including those where "Code That Fits in Your Head" is a secondary tag).
-
Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
-
Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
COM
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
-
What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
-
High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
-
Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
-
Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
-
COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
-
The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
-
The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
-
Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
-
Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
-
Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
-
Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
-
Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
-
ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
-
How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
-
Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Checklists: (Aug 17, 2023) What flying a B-17 bomber can teach us about software development.
- Command Query Separation: A Technique for Reducing Code Complexity: (Sep 12, 2023) One helpful way to reduce the complexity of your code is to be intentional about how and where your code produces side effects.
- ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
- What the #$%& is COM!?: (Nov 19, 2021) One of the most important concepts in VBA is also one of the least understood. Let's shine a light on the Component Object Model.
- High Level Overview of COM: (Nov 20, 2021) This whirlwind tour of the Component Object Model technology will jump start your journey of automating Excel from VBA in Access.
- Early Binding vs. Late Binding: The Essential Guide for VBA Developers: (Nov 27, 2021) The Absolute Minimum Every VBA Developer Absolutely, Positively Must Know About Early and Late Binding in COM (No Excuses!)
- Microsoft Office COM Automation Libraries: (Dec 3, 2021) The VBA developer's guide to automating Microsoft Office applications: early vs late binding; CreateObject vs GetObject; and tips on cleaning up after yourself.
- COM Server Types: In-Process vs. Local vs. Remote: (Dec 27, 2021) There are three basic types of COM servers: in-process, local, and remote. What do they have in common? What are the differences? Let's explore.
- The IUnknown Interface: (Mar 7, 2022) All COM objects are required to support at least one interface: the IUnknown interface. In this short article, we explore the three methods of IUnknown.
- The IDispatch Interface: (Mar 25, 2022) For a COM object to support late binding in VBA, it must implement the IDispatch interface. Let's explore IDispatch and its four methods.
- Overcoming Programming Language Barriers with COM: (Mar 26, 2022) COM is sort of like a Chinese restaurant.
- Early vs. Late Binding at the Chinese Restaurant: (Mar 28, 2022) In this continuation of our Chinese restaurant-COM metaphor, we expand the example to illustrate the differences between early and late binding.
- Managing Memory in COM: (Mar 30, 2022) We continue on with our restaurant analogy to explain the concept of reference counting and COM object cleanup.
- Reference Counting's Fatal Flaw: Circular References: (Mar 31, 2022) We look at several types of circular references along with a handy tool that you can use to help identify circular references in your own code.
- Loading VBE Addins - A Windows Registry Tour: (Apr 25, 2022) Let's pull back the curtain and see how VBA loads VBE COM add-ins via a series of registry calls.
- ActiveX vs. Standard DLLs: (Jun 15, 2022) What's the difference between an ActiveX (COM) and Standard DLL? When would you choose one over the other?
- How VBA IDE Addins Get Loaded From the Windows Registry: (Apr 12, 2024) A deep dive into how VBA IDE addins get loaded from the Windows Registry to help you avoid getting stuck in DLL hell.
- Invisible Instances of Office Applications: Who is to Blame?: (May 21, 2024) These two words can help you determine whether a hanging copy of Word, Excel, Access, or Outlook is a bug in Office...or a problem with your own VBA code.
Combo Boxes
- ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
-
Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
-
Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
-
Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
-
Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
-
Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
-
Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
-
Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
-
5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
-
A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
-
A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
-
ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
-
How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
-
Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
-
Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
-
ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
Commentary
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
-
Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
-
No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
-
Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
-
Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
-
Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
-
Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
-
The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
-
Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
-
How Not to Propose: (Oct 8, 2020) Features don't sell software.
-
The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
-
Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
-
Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
-
7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
-
Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
-
Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
-
How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
-
Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
-
Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
-
You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
-
Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
-
Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
-
Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
-
Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
-
The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
-
Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
-
Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
-
Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
-
Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
-
Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
-
The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
-
Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
-
5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
-
How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
-
Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
-
Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
-
3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
-
The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
-
The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
-
Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
-
Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
-
Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
-
Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
-
The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
-
PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
-
Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
-
The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
-
Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
-
How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
-
Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
-
The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
-
The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
-
Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
-
AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
-
Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
-
VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
-
The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence.
Thrice is a pattern.
-
Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
-
"I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
-
Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
-
Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
-
"Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
-
Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
-
The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
-
Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
-
Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
-
Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
-
Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
-
"How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
-
What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
-
7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
-
Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
-
Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
-
Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
-
Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
-
How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
-
Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
-
Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
-
How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
-
Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
-
Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
-
Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
-
Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Combo Boxes and Target Sizes: (Jun 7, 2021) Just like in darts, it's easier to hit a larger target when using the mouse. With this in mind, let's make our combo boxes more user-friendly.
- Combo Boxes: Use Responsibly: (Jun 8, 2021) Comic book legend Stan Lee captured the essence of the Microsoft Access combo box control in six words, "With great power, comes great responsibility."
- Combo Box Benefits: (Jun 9, 2021) An overview of some of the benefits of combo boxes, including autocomplete, hierarchical searching, and auto-updated most frequently used lists.
- Progressive Combo Box Filtering: (Jun 10, 2021) Autocomplete for combo boxes with hundreds of thousands of entries? It's possible with the progressive filtering technique.
- Multi-Column Progressive Combo Box Filtering: (Jun 11, 2021) You, too, can learn to filter your combo boxes by every visible column.
- Cascading Combo Boxes: (Jun 12, 2021) Cascading combo boxes are one of the best ways to find data in a fixed hierarchy. Here's what the concept looks like in action.
- Lazy Loading Combo Boxes: (Jun 14, 2021) Don't load tens of thousands of records into a combo box. Instead, wait for the user to start typing, and then load only what they need.
- 5 Advanced Combo Box Techniques to Take Your Access Forms to the Next Level: (Jun 16, 2021) Increase the combo box's "target area," lazy load your data, add progressive filtering (for multiple columns!), and implement dead-simple cascading.
- A Wonderful, Magical Class Module: (Jul 30, 2021) Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
- A Lazy-Loading Combo Box In Only 3 Lines of Code: (Jul 31, 2021) 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.
- ComboBox .Undropdown Method: (Aug 11, 2021) Combo boxes have a .Dropdown method. But what if you want the opposite: a .CloseDropdown method? This tip from Adam Waller has the answer.
- How to Add a Catch-all Value to a Combo Box in Access: (Oct 29, 2021) Two ways to let your users choose "All of the above" when using your combo boxes.
- Dealing with Inactive Items in a Combo Box Row Source: (Feb 15, 2022) There are many ways to deal with inactive RowSource items in combo boxes. Here's a no-code technique that I find myself coming back to time and again.
- Using the NotInList Event in Microsoft Access to Dynamically Update Combo Boxes: (Aug 31, 2023) The Microsoft Access combo box's NotInList event lets you provide "just-in-time" features for building a simple and intuitive user experience.
- ComboBox NotInList Event: Revisited: (Sep 5, 2023) We improve our NotInList event code with a workaround for the "text you entered isn't an item in the list" error message via the little-known Form Error event handler.
- ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
- Sympathy for the devil?: (Sep 1, 2020) Microsoft Access is not the devil. You can use it to write great software. You can use it to write crappy software. I'm here to help you write more of the former and less of the latter.
- No Longer Set: (Sep 3, 2020) One of the most important features of Microsoft Access is backwards compatibility. And make no mistake, backwards compatibility *is* a feature.
- Past is Prologue: (Sep 23, 2020) A personal reflection on my software development journey. There's more to creating great software than knowing how to write code.
- Building Your Library: (Sep 28, 2020) Thirteen years ago, I chose to maintain a folder of text files rather than a single Access database library. I've never once regretted that decision.
- Weekend Warriors: (Oct 1, 2020) Wherein I compare keyboard warriors to actual warriors.
- Lightweight Forms? Just Don't: (Oct 2, 2020) Lightweight forms make your code harder to read and debug, but if your users have monitors with high enough refresh rates, they'll appreciate the effort.
- The Curse of Reliable Software: (Oct 4, 2020) How does one avoid the reliability paradox? One option is to intentionally write unreliable, buggy software. There's a better option.
- Two Ways to Burn: (Oct 5, 2020) Burning cardboard is a lot like a large data migration. You can do it all at once or slowly over time.
- How Not to Propose: (Oct 8, 2020) Features don't sell software.
- The Golden Rule of Data Migrations: (Oct 16, 2020) The fastest and most reliable way to run a migration is to repeat it many times. I call this the "Repetition Paradox."
- Cruft Sale!: (Nov 7, 2020) Everything must go!!! Dead code, obsolete reports, and bunches of binary backups! No offer too big or too small!
- Web Apps - Bane of my Existence: (Nov 11, 2020) Whatever modicum of credibility I may have had with "real programmers" I am about to douse in gasoline and light on fire with this article.
- 7th Grade Career Day: (Nov 21, 2020) Using this approach, I manage to teach multiple programming concepts to absolute beginners in the span of about fifteen minutes.
- Backward Compatibility: A Go Perspective: (Nov 30, 2020) "What actually makes code, advice, and tutorials obsolete?" Let's explore the answers as they relate to the Go programming language and MS Access.
- Copying and Pasting Code with Purpose: (Dec 11, 2020) The first commandment of software development is, "Thou shalt not copy and paste code." Sometimes that's wrong.
- How It's Always Been Done: (Dec 31, 2020) Good programmers know how to code. Great programmers know why. The best programmers question why.
- Access Migrations: (Jan 2, 2021) Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
- Declaration of Database Design: (Jan 15, 2021) Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
- You're Not an Impostor: (Feb 19, 2021) You're good enough, you're smart enough, and doggone it, people like you.
- Recovering From Code Loss: (Feb 28, 2021) Access just crashed while you were writing code. When you last saved will determine how long it takes to recover, but it's not a linear relationship.
- Reducing Lost Code Recovery Time: (Mar 3, 2021) 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."
- Some Bugs are Better than Others: (Mar 25, 2021) Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
- Join Me at Access DevCon 2021: (Mar 28, 2021) I will be presenting the about-to-be-released TwinBasic project from vbWatchdog developer, Wayne Phillips. Join me on April 22-23.
- The Two Keys to Building Great Access Applications: (Jun 17, 2021) The best Access applications prioritize data discovery and efficiency.
- Microsoft Access's Multiple Personality Disorder: (Jun 26, 2021) The dual nature of Access–and the ignorance of this reality–is a major source of the shade that "real programmers" throw its way.
- Don't Write Clever Code: (Jul 14, 2021) There are two problems with clever code. 1) The next person might not know what you were doing. 2) They might not know if *you* knew what you were doing.
- Microsoft and VBA: A Love(less) Story: (Jul 22, 2021) Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
- Evolution of a Business Application: (Aug 13, 2021) Before you commission that custom web application project, it pays to validate that the business process even warrants such a significant investment.
- Access vs. Enterprise Software: A False Choice: (Aug 14, 2021) Beware of strawman arguments against Microsoft Access.
- The Software Reliability Paradox: (Sep 22, 2021) The most reliable software holds the potential to cause the greatest harm. Examples abound, from my own $86K mistake to a devastating Russian hack.
- Eliminating Friction: (Oct 19, 2021) The key to becoming a better developer is to make it so The Right Way is also The Easy Way.
- 5 Types of Documentation: (Nov 9, 2021) Each type of documentation has unique strengths and weaknesses. Knowing when and how to use each is an important skill for every developer.
- How to Request New Features for Microsoft Access: (Nov 11, 2021) After a long and conspicuous absence, Microsoft has finally published a new website where you can submit and vote on feature requests.
- Let's Make Access More Version-Control Friendly: (Nov 12, 2021) Hey! Wouldn't it be great if Access was version-control friendly out of the box? If you agree, head over to the Access feedback portal and vote for my request.
- Access Dataverse Connector: (Nov 23, 2021) Did you ever think to yourself, "I wish there was a way to make my back-end data less flexible *and* less powerful?" Good news; your wait is over!
- 3 Benefits of Writing Code Backwards: (Nov 24, 2021) Ignore those compile errors and start writing your calling code before your routines. This approach has many benefits.
- The Key to Navigating Unfamiliar Territory Without a Map: (Nov 29, 2021) How I successfully led a 60-vehicle military convoy at 23 years old without knowing what I was doing or where I was going.
- The State of Access Today: (Nov 30, 2021) What's the state of Microsoft Access in 2021: thriving, alive, dying, or dead? If you only know Access by reputation, the answer may surprise you.
- Code is WORM: Act Accordingly: (Jan 31, 2022) Write Once. Read Many. The cost of avoiding shortcuts when writing code is far exceeded by the benefits you'll get when reading it.
- Is Microsoft Access a Good Development Platform in 2022?: (Feb 8, 2022) Microsoft has embraced the mantra of "move fast and break things." For Access, though, Microsoft is only delivering on the latter part of that promise.
- Yes, VBA-Enabled Office Docs are a Significant Threat: (Feb 17, 2022) VBA-enabled documents are commonly used to open the door for more virulent malware.
- Expect the Unexpected: (Feb 25, 2022) Getting ready to start a complex project? Stressing about what might go wrong? Here's some advice to help lower that stress level.
- The Curse of Knowledge: (Jul 22, 2022) Even the world's worst programmer knows more about programming than most small business owners or department managers.
- PICNIC: The Underlying Cause of Many Technical Support Calls: (Sep 14, 2022) A PICNIC is the most frequent source of problems on technical support calls.
- Avoid Context Switching for More Readable Code: (Sep 16, 2022) Writing code is like juggling. But mixing code, queries, and global state is like juggling balls, bowling pins, and running chainsaws.
- The Problems with Boilerplate Code: (Oct 12, 2022) Copy. Paste. Modify. Repeat. Writing and maintaining boilerplate code is a necessary evil in VBA.
- Follow-Up: Avoiding Context Switching: (Oct 24, 2022) It doesn't matter which context you are working in–VBA or queries–the key is to pick one and stick with it.
- How to Know When to Turn Lines of Code Into a Standalone Routine in VBA: (Dec 5, 2022) DRY vs. YAGNI. Don't Repeat Yourself or You Ain't Gonna Need It? Sometimes it's not obvious whether a block of code would be useful as a standalone routine.
- Managing Software Complexity: The Rule of Seven: (Mar 13, 2023) Don't try to increase the number of balls you can keep in the air; instead, reduce the number of balls needed to follow your software's logic.
- The 5 Surprising Lessons I Learned About Developing Software: (Mar 30, 2023) Many of the things I thought I knew about writing software were not only wrong, but often the exact opposite of the truth.
- The Zen of Python: 19 Pieces of Programming Wisdom: (Mar 31, 2023) The Zen of Python is the famous philosophical foundation of one of the world's most popular programming languages. And that's no coincidence.
- Spinning Plates: What this Parlor Trick Has in Common with Software Development: (Apr 4, 2023) The fewer items you need to mentally track the less likely you are to make mistakes or generate bugs.
- AI is the Future...And the Future is Now: (Apr 21, 2023) Used properly, AI is the greatest force-multiplying technology the world has ever seen.
- Documentation-First Development: (May 16, 2023) The act of writing end-user documentation before software development offers a host of surprising benefits.
- VBA Cracks RedMonk's Stack Overflow Top 15 for 2023: (May 18, 2023) VBA may never be a GitHub heavyweight, but it holds its own among other top languages in terms of Stack Overflow popularity.
- The Rule of Thrice: Know When to Build Generic Solutions in Code: (Jun 22, 2023) Once is a fluke. Twice is a coincidence. Thrice is a pattern.
- Priorities and Time Management for Microsoft Access Consultants: (Jul 4, 2023) Whether you realize it or not, every decision you make about how to manage your time is a result of what you prioritize.
- "I'm Not Touching That!": (Jul 31, 2023) Hey, who wants to maintain this legacy code? Beuller? Beuller?
- Three Factors that Lead to Complex Code: (Aug 3, 2023) "Three properties determine the complexity of an environment. ... The greater the multiplicity, interdependence, and diversity, the greater the complexity."
- Microsoft Access vs. SQLite: Security Comparison: (Aug 4, 2023) Microsoft Access or SQLite: Which one is more secure? The answer may surprise you.
- "Old" is the New "New": (Aug 18, 2023) Do you have a software project littered with now-old items named "XxxxNew"? If you're determined to avoid doing it the right way, here's a less terrible approach.
- Wrapper vs. Port vs. Rewrite: (Aug 21, 2023) Wrappers, ports, and rewrites are three techniques for incorporating non-native code into our applications. Let's explore the pros and cons of each approach.
- The Complicator's Gloves: A Cautionary Tale for Software Developers: (Sep 27, 2023) This classic tale reminds us as software developers to resist the urge to go down the rabbit hole of an over-engineered solution.
- Working on Someone Else's Code Base: Why Applications are Easier to Write Than Maintain: (Oct 9, 2023) Writing greenfield code is easier (and more fun!) than maintaining an existing application. But that doesn't mean it's a good idea.
- Documenting Recurring Processes: (Oct 30, 2023) The two-pronged approach we use to document recurring processes internally.
- Everything in Life is a Tradeoff: (Nov 6, 2023) There will never be a shortage of people willing to spend other people's money.
- Career Advice from Patrick McKenzie: (Nov 7, 2023) Patrick McKenzie is the best writer on the topics of software and business that you've never heard of.
- "How Hard Can It Be?" Five of the Most Dangerous Words for Access Developers: (Nov 10, 2023) Software projects often turn out to be much more complex than initially anticipated. Here's how to avoid getting in over your head.
- What Dwight Eisenhower Can Teach Us About Microsoft Access: (Nov 22, 2023) IT departments love to hate Access. With an open mind, though, Access can play an important role in a holistic approach to in-house software development.
- 7 Things Most People Don't Know About Microsoft Access: (Nov 23, 2023) Number four is the most frustrating for professional Access developers.
- Bananas Bring Bad Luck on Boats: (Nov 27, 2023) An important lesson in the hidden danger of unknown unknowns, and a good reminder of why non-developers create some of the most useful Access apps.
- Microsoft Access has an Anemic Third-Party Ecosystem...But There is a Silver Lining: (Dec 1, 2023) Sometimes, less is more.
- Microsoft Access: The Only Low-Code/No-Code/High-Code Data Application on the Market: (Jan 15, 2024) Microsoft Access was the original low-code tool before low-code tools were all the rage. There's an important reason why Access remains the king.
- Microsoft MVP Summit 2024: (Mar 13, 2024) Engaging with the Access team, exploring the future of VBA, and advocating for the Access community.
- How to Tell the Technical Abilities of a User Without Asking: (Apr 17, 2024) How do you assess the technical abilities of someone who might not even know how to accurately assess themselves? By making the garden weed itself.
- Thomas Jefferson's Accidental Programming Advice: (Apr 23, 2024) Premature declaration is nothing to be embarrassed about. It can happen to anyone. You don't want to make a habit of it, though.
- Premature Declaration Redux: (May 2, 2024) Let's revisit the argument about whether to declare variables at the top of a procedure or closest to first use. We'll ask ChatGPT to make the best case for each position.
- How Many People Use Microsoft Access?: (May 16, 2024) Anecdotal estimates vary wildly. After scouring the internet, I've only found one (semi-) official number. And it's probably a lot higher than you think.
- Will OfficeScripts Replace VBA?: (May 24, 2024) As always, reports of VBA's demise are greatly exaggerated.
- Why You Should Take Client Psychology Into Account as an Access Developer: (Jul 9, 2024) Should you pay off your mortage early or invest? The answer depends on both math AND psychology. The same is true when working with clients.
- Killing VBA in Outlook: Reduced Functionality is the Whole Point: (Jul 11, 2024) In the name of security and cross-platform compatibility, Microsoft is intentionally neutering one of its flagship applications.
- Breaking Changes: New Outlook Auto-Migration Begins January 2025: (Dec 6, 2024) Microsoft announces timeline for breaking your Access applications: automatic migration to New Outlook begins January 2025. Here's why you shouldn't rush to rewrite everything (yet).
Convenience Functions
- ["Convenience Functions" tag page]: Show all articles with the tag "Convenience Functions" (including those where "Convenience Functions" is a secondary tag).
-
Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
-
The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
-
Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
Conventions
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Avoiding the Error "invalid reference to the property CurrentRecord": (Jul 1, 2021) Error number 2455, "You entered an expression that has an invalid reference to the property CurrentRecord," is annoying, but there is an easy fix.
- The TrySetFocus Convenience Function: (Jul 6, 2021) The TrySetFocus function attempts to set focus to a control. If the operation succeeds, it returns True; otherwise, it returns False.
- Convenience Functions (My Secret Weapon to Create Self-Commenting Code): (Jul 8, 2021) How much can you really gain by replacing one line of code with a different, functionally equivalent line of code? Quite a bit, as it turns out.
- ["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.
Database Design
- ["Database Design" tag page]: Show all articles with the tag "Database Design" (including those where "Database Design" is a secondary tag).
-
Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
-
When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
-
The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
-
Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
-
Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
-
Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
-
When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
-
Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
-
Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
Debugging
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
-
Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
-
How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
-
Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
-
Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
-
Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
-
Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
-
Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
-
Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
-
Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
-
3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
-
Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
-
Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
-
SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
-
Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
-
Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
-
TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
-
Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
-
Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
-
FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
-
Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
-
The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Autonumber Primary Keys: (Nov 17, 2021) They're fake ... and they're spectacular!
- When to Store Numbers as Text: (Nov 25, 2021) Introducing the "Numeroliteral Test," a one-question heuristic for deciding whether to store numeric data in a character-based field.
- The 13 Kinds of Business Application Tables: (May 27, 2022) Database tables in a line-of-business application generally fall into one of these thirteen categories.
- Reader Q&A: Single-Row Tables: (Dec 8, 2022) Are single-row tables something you should use or not? Can they be trusted? I answer that and more in this installment of Reader Q&A.
- Sample Database Schemas for the Database Design Phase: (Dec 15, 2022) The most important phase of any Microsoft Access application project is the database design. This site has tons of sample schemas to get you started.
- Beware of "Over-Normalizing" Your Database: (Jan 2, 2023) Sometimes the two primary goals of database normalization--reduced data redundancy and improved data integrity--are at odds with each other.
- When Should You Include an Autonumber Column in a Table?: (Jun 14, 2023) Surrogate vs. Natural Keys. GUIDs vs. Autonumbers. What factors dictate whether to include an autonumber column in your table? When should you do it?
- Reader Question: How to Match Names from Multiple Systems: (Jun 27, 2023) It's a common data cleansing challenge: how do you eliminate duplicate data from multiple systems without accidentally deleting unique data?
- Common Uses for One-to-One Database Relationships: (Dec 29, 2023) One-to-one relationships are the red-headed step-children of the relational database world. Here are 25 reasons it doesn't have to be that way.
- ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
- Debugging Automation Errors: (Nov 19, 2020) Come join me on a journey debugging hard-to-reproduce "Automation error" bugs.
- How to Set a Breakpoint in Startup Code in VBA: (Dec 4, 2021) Ever set a breakpoint in your Access application's startup code, only to have it get cleared before it got hit? There's a simple workaround.
- Checking Specific TCP Port Access to a Remote Machine: (Jan 11, 2022) Troubleshooting network connections is tough. Generic error messages make it hard to identify the root of the problem. This PowerShell cmdlet can help.
- Troubleshooting SQL Server Connection Errors: (Feb 28, 2022) "SQL Server does not exist or access denied." One error. Dozens of possible causes. Read on for a bunch of practical troubleshooting tips.
- Find the Yellow Highlighted Line When Debugging in VBA: (Mar 3, 2022) Did you ever lose your place while debugging in VBA? Here's an easy way to find it.
- Troubleshooting Access Hanging When Switching to Design View: (Mar 12, 2022) How I used two low-level tools--ProcMon and WireShark--to figure out why Access was taking forever to switch to design view in forms and reports.
- Troubleshooting the "Unable to create target directory" Error in PDQ Deploy with ProcMon: (Apr 7, 2022) Let's use my jack-of-all-trades troubleshooting tool--Process Monitor--to find the root cause of a recurring PDQ Deploy error.
- Breaking Down Windows Error Codes: (May 23, 2022) Did you know there is a method to the madness behind those crazy-looking VBA error numbers like 0x80070005 or its decimal equivalent -2,147,024,891?
- Fixing a Persistent "Write Conflict" Error: (Jun 10, 2022) If you are getting consistent "Write Conflict" warnings when using bound forms to update SQL Server tables with datetime fields, there may be an easy fix.
- 3 Benefits of Documenting Your Debugging Process: (Sep 5, 2022) It may sound counterintuitive, but taking the time to document your debugging process will save you time--both now and in the future.
- Debug Documentation: Signal vs. Noise Edition: (Jan 19, 2023) Debugging an issue can generate a lot of content. This technique helps you keep track of and find the parts that really matter.
- Using PowerShell to Provide TCP Port Details of Running SQL Server Instances: (Jun 6, 2023) A PowerShell script that returns useful debugging information about the TCP port details of running instances of SQL Server.
- SSE Setup: Fix for Error -2147024671: (Jun 28, 2023) This is a great example of how we can break down seemingly random Windows error codes to guide our debugging efforts.
- Written Rubberducking: My Debugging Superpower: (Jul 5, 2023) While rubber ducks make good code buddies, they make even better pen pals.
- Written Rubberducking: A Practical Example: (Jul 6, 2023) A practical example of the written rubberducking technique taken straight from our FogBugz issue tracking software.
- TCP Port Test Fails When SQL Server Service Is Stopped: (Jul 19, 2023) There are three likely causes for a failed TCP Port test: 1) firewall on the SQL Server host; 2) SQL Server uses dynamic ports; or 3) SQL Server service is stopped.
- Break Down Complex Expressions for More Debuggable Code: (Sep 18, 2023) Combining multiple operations into a single line of code may be an effective way to play "code golf", but it's no way to develop maintainable software.
- Use XML to Share Access Table Data and Avoid Internet Warnings: (Dec 4, 2023) Anti-virus software and Microsoft policies make it harder than ever to share table data among Access users. The XML format is a simple way to avoid those roadblocks.
- FIXED: "You entered an expression that has no value.": (Dec 20, 2023) "You entered an expression that has no value," is a common Microsoft Access error message. Luckily, while the fix is not obvious, it is easy.
- Rubberducking: (Feb 5, 2024) This one-step process is a surprisingly effective way to troubleshoot the most complex programming problems.
- The Windows Hosts File: A Powerful Debugging Tool for Developers: (Jun 12, 2024) Unlock the secrets of the Windows hosts file and take your debugging skills to the next level.
Defensive Programming
- ["Defensive Programming" tag page]: Show all articles with the tag "Defensive Programming" (including those where "Defensive Programming" is a secondary tag).
-
Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
-
The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
-
Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
-
5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
-
Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
-
Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
-
A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
-
In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
-
Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
-
3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
-
When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
-
Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
-
Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
-
Bug Alert: Accidental
Double-Clicking
of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
-
"Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
-
CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
Deployment
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
-
Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
-
Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
-
Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
-
Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
-
Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
-
HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Defensive Programming: (Oct 10, 2020) Don't build digital Maginot Lines. Program your defenses in depth.
- The RecordsAffected Property is a Powerful Tool for Defensive Programming: (Aug 4, 2021) As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
- Reduce Logic Errors in Critical Code: (Sep 30, 2021) Software Developers Can Almost Eliminate Logic Errors With This Powerful Technique
- 5 Ways to Reduce Logic Errors Using Automated Double-Checks: (Oct 1, 2021) Identify the critical functions in your application. Then, apply one or more of these techniques to ensure that if they break, someone will notice.
- Data Validity Checks: (Oct 18, 2021) Increase the quality of your existing data by running it through a series of validity checks and showing your users the results.
- Frictionless Validity Checks: (Oct 30, 2021) Let's apply the concept of frictionless development to the defensive programming technique of data validity checks.
- A Safe Way to Add Temporary Code: (Feb 26, 2022) A quick tip to ensure your temporary code disappears when the sun sets.
- In Defense of Security Through Obscurity: (Jun 3, 2022) There are two key elements to defending a military position: cover AND concealment. It's not an either-or proposition.
- Guard Clauses: (Jan 16, 2023) Guard clauses are one of my favorite low-friction defensive programming tools.
- 3 Techniques for Programming Reversible Processes: (Feb 1, 2023) How would you recover from a large accidental UPDATE operation? You'd better be able to answer that question *before* it happens.
- When Reliable Software Goes Bad: (Feb 16, 2023) Back in the 1980's, misplaced user trust in the software of a radiation therapy machine led to six deaths and several other serious injuries.
- Five Ways to Turn Logic Errors into Runtime Errors in VBA: (Apr 17, 2023) Runtime errors are cheaper and easier to fix than logic errors. Here are five ways to make that happen.
- Five Ways to Turn Runtime Errors into Compile Errors in VBA: (Apr 19, 2023) Compile errors are cheaper and easier to fix than runtime errors. Here are five ways to turn potential runtime errors into compile errors.
- Bug Alert: Accidental Double-Clicking of Long-Running Processes: (Jan 19, 2024) This is not a bug in Access itself, but rather a common pattern that leads to occasional logic errors that can be nearly impossible to reproduce (and debug).
- "Hiding" Global Data in VBA: (May 14, 2024) How to implement Steve McConnell's sage advice for handling global data, with techniques for both global constants and global variables.
- CrowdStrike and Delta: Victims of the Software Reliability Paradox: (Aug 2, 2024) As software reliability increases, so too does the degree of harm it has the potential to create. Just ask Delta.
- ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
- Adding a Machine-Wide Trusted Location in MS Access: (Feb 14, 2022) Let me show you how to add a Trusted Location for every user on a device even if that device doesn't have a full copy of Microsoft Access.
- Mark of the Web (MOTW) Support Among Zip Utilities: (Jun 8, 2022) What happens to the Mark of the Web when you extract files from a downloaded .zip file? It depends on what you use to do the extraction.
- Distributing One-Time Data "Hot Fixes": (Jul 8, 2022) Rolling out changes to *production data* when you don't have direct access to that data can be tricky. This tip makes the process easier.
- Creating Pre-packaged Software with Microsoft Access: (Jul 21, 2022) Microsoft Access is a poor choice for creating pre-packaged software applications. But does it really have to be that way?
- Feature Gates: How Microsoft Switched to a Single Code Base for Multiple Versions of Office: (Apr 3, 2023) Did you ever wonder why SysCmd(acSysCmdAccessVer) returns 16.0 for every version of Access starting with Office 2016? I have a theory...
- HOW TO: Compile to .accde or .mde From the Command Line: (Apr 26, 2024) "The Joel Test" requires that you can "make a build in one step." With these instructions, you can create an .accde from an .accdb without even opening Access.
DevCon
- ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
-
Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
-
Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
-
Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
-
Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
-
Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
-
Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
-
Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
-
Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
-
Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
-
Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
DoEvents
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
-
Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
-
How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
-
How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
-
When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
-
A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
-
How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
-
DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Access DevCon Vienna 2022 - Day One Recap (Part 1): (Apr 30, 2022) I cover Maria Barnes's Dataverse Connector talk and Microsoft's Access Roadmap update in this Access DevCon Vienna 2022 recap.
- Access DevCon Vienna 2022 - Day One Recap (Part 2): (May 2, 2022) I cover Kevin Bell's appLauncher service, Chris Arnold's SSMS-like Access tool, my COM talk, and Colin Riddington's Google Maps API demo in this Day 1 DevCon Vienna 2022 recap.
- Access DevCon Vienna 2022 - Day Two Recap (Part 1): (May 3, 2022) I cover my twinBASIC Update, VBA Tips and Tricks with AG, Word Automation with Crystal Long, and Peter Cole's Themes talk in this Day 2 DevCon Vienna 2022 recap.
- Access DevCon Vienna 2022 - Day Two Recap (Part 2): (May 4, 2022) I cover Northwind 2.0, Continuous Datasheets with Chris Arnold, Peter Cole's 64-bit VBA converter, and Colin Riddington's Translate & Speak tool in this Day 2 DevCon Vienna 2022 recap.
- Access DevCon Vienna 2022 - Access Roadmap Update: (Sep 8, 2022) Highlights include a new "High Confidence" approach to the roadmap, a sneak peek at the modern browser control, and background on the Monster Bug.
- Access DevCon Vienna 2023 - Day One Recap: (Apr 28, 2023) A brief recap of the six sessions on Day 1 of Access DevCon Vienna, the premiere annual English-speaking Microsoft Access global conference.
- Access DevCon Vienna 2023 - Day Two Recap: (May 1, 2023) A brief recap of the five sessions on Day 2 of Access DevCon Vienna, the premiere English-speaking Microsoft Access global conference.
- Microsoft Access - Latest Innovations and the Road Ahead - Access DevCon 2023: (May 2, 2023) The Microsoft Access team provides updates on Code Signing, Dataverse, In-App Messaging, the Edge Browser Control, and future development priorities.
- Documentation Update from Jeff Conrad: (May 3, 2023) Microsoft content manager Jeff Conrad provides a surprisingly interesting behind-the-scenes look at how Access documentation is created and managed.
- Northwind 2.0: The Access Database Template You've Been Waiting For: (May 9, 2023) It only took 30 years, but Microsoft Access finally has a set of templates showcasing the best of what Access and its community of experts have to offer.
- Access in an Azure VM: (Jun 21, 2023) Denver Area Access User Group president, George Young, provides a blueprint for how to move your existing Access applications to the cloud.
- Sneak Peek: Monaco SQL Editor for MS Access: (May 8, 2024) The VS Code editing experience is on its way to the Microsoft Access SQL editor. Get an early look at this exciting upcoming feature.
- Sneak Peek: Modern Access Charts: (May 10, 2024) A slew of new chart options is coming soon to Microsoft Access. Check out this video excerpt from DevCon Vienna 2024 to learn more.
- ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
- Demystifying DoEvents: (Jul 12, 2021) The DoEvents function may be the single most misunderstood piece of code in the entire VBA language. In this series of articles, I'll try to remedy that.
- How to Teach a Six-Year Old About the DoEvents Function: (Jul 15, 2021) I challenge you to read this article without laughing or learning anything new about the DoEvents function.
- How to Use the DoEvents Function: A Demonstration: (Jul 16, 2021) The demonstration and downloadable sample code in this article make it easy to understand how DoEvents works.
- When (or Should I Say, How Often) to Call DoEvents: (Jul 17, 2021) 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.
- A High-Level Overview of the DoEvents Function Call: (Jul 19, 2021) Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
- How DoEvents Works: The Nitty-Gritty Technical Details: (Jul 23, 2021) A peek behind the scenes at the inner workings of the DoEvents function.
- DoEvents vs. Repaint in Microsoft Access: (Jul 26, 2021) 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.
Edge Browser Control
- ["Edge Browser Control" tag page]: Show all articles with the tag "Edge Browser Control" (including those where "Edge Browser Control" is a secondary tag).
-
An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
-
Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
-
How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
Error Handling
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
-
Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
-
Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
-
Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
-
Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong.
(Shocking, I know.)
-
Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
-
The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- An Early Look at Security Features in the New Browser Control: (Mar 16, 2023) Among the differences between the old and new Microsoft Access browser controls is an emphasis on security in the new version. What does that mean for you?
- Resources for the Modern Edge-Based Browser Control in Microsoft Access: (Jun 7, 2023) Looking for information or help with the modern Edge-based browser control in Microsoft Access? You've come to the right place.
- How to Access the .Document Property to Parse Web Pages Using the New Edge Browser Control: (Dec 26, 2023) The loss of the .Object property in the new Edge browser control is a big blow to web automation in VBA, but a workaround from Daniel Pineault helps fill the gap.
- ["Error Handling" tag page]: Show all articles with the tag "Error Handling" (including those where "Error Handling" is a secondary tag).
- Error Handling Evolution: (Sep 6, 2020) How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.
- Throwing Errors in VBA: (Oct 11, 2020) Introducing a frictionless alternative to Err.Raise.
- Graduate Level Error Handling: (Oct 14, 2020) Once again, I borrowed an idea from Python. To smuggle this concept into VBA, I turned to a rarely-used language feature...
- Why "Add an Error Handler to Every Routine" is Bad Advice: (Nov 10, 2021) For every complex problem, there is an answer that is clear, simple, and wrong. (Shocking, I know.)
- Showing User-Friendly Error Messages for Missing Data on Bound Forms in MS Access: (Jan 13, 2023) Here are two ways to show custom error messages on a bound form using (1) the Form_BeforeUpdate event or (2) the Form_Error event.
- The Form Error Event: How to Handle "Untrappable" Access Errors: (Sep 4, 2023) The Form Error event comes to the rescue for a category of errors impervious to `On Error Resume Next` and `DoCmd.SetWarnings False`.
Events
- ["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
- ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
-
Fluent Interfaces: (Jan 10, 2021) 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.
-
Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
-
When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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).
- Fluent Interfaces: (Jan 10, 2021) 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.
- Diving Deeper into the World of Fluent APIs: An Unusual Way of Constructing Class Modules: (Nov 29, 2022) Martin Fowler first coined the term fluent interfaces back in 2005. What are they, what do you need to know about them, and what do they look like in VBA?
- When to Build Fluent APIs: (Nov 30, 2022) Fluent programming interfaces can be your best friend or your worst enemy. So how do you know when they are appropriate to use?
Form Design
- ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
-
Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
-
Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
-
Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
-
Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
-
IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
-
Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
-
Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
-
Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
-
Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
-
5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
-
Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
-
Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
-
Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
-
Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
-
5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
-
Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
-
The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
-
Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
-
Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
-
Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
-
Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
-
Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
-
Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
-
Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
-
Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
-
How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
-
Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
-
Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
-
Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
Forms
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
-
Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
-
Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
-
2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
-
AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
-
6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
-
7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
-
The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Form Design Gallery: (Dec 29, 2021) An ever-expanding gallery of Microsoft Access form design tips, techniques, and inspiration.
- Master Lookup Form: (Dec 30, 2021) The Master Lookup Form is the hub of my Access applications.
- Progress Tracker Form: (Dec 31, 2021) For recurring processes that have lots of required subtasks but with no dependencies among the subtasks, I turn to my Progress Tracker Form.
- Two-Way Many-to-Many Form: (Jan 1, 2022) Presenting many-to-many relationships intuitively is tricky. I use this style of form when the two sides of the relationship have a small number of records.
- IslaDogs: Getting Creative with the Access Application Interface: (Jan 4, 2022) This one-hour video from Colin Riddington (aka IslaDogs) is jam-packed with API-based Access user interface hacks.
- Modern Message Boxes in Access: (Jan 5, 2022) These modern message boxes from Kevin Bell will help set your Access applications apart from the crowd.
- Tabbed Master-Detail Form: (Jan 26, 2022) The tabbed master-detail form is the heart of my Access applications. The first tab has record details, while the other tabs provide subforms for one-to-many relationships.
- Add a Custom Right-Click Menu to an Access Control: (Feb 2, 2022) It's easier than you might think to add a right-click menu to a control on your Access form.
- Overlapping Windows vs. Tabbed Documents: (Mar 22, 2022) Access gives you two options for displaying forms and report objects: windows or tabs. Read on for the advantages of each and which one I prefer.
- 5 Ways to Set a Default Font on Microsoft Access Forms: (May 6, 2022) If you don't like the default fonts in MS Access, you don't have to change them one control at a time. Here are 5 techniques to simplify the task.
- Abbreviations in Lookup Tables: (May 19, 2022) One way to boost the signal-to-noise ratio on your continuous forms is to use abbreviations rather than full descriptions for lookup tables.
- Choosing the Right Font: (Jun 1, 2022) Fonts fall into six main categories. There is no one "best" type of font. Rather, each type serves different purposes.
- Modern On/Off Button in Access: (Jul 26, 2022) Leave those boring checkboxes behind and move into the 21st century with these modern on-off switches for Microsoft Access. Very little code required!
- Triple-State Modern On/Off Switch in Access: (Aug 19, 2022) Yes, No, or I Don't Know (or Don't Care). With this updated design, you can offer your users a third option with your modern on/off switches.
- 5 Ways to Build Consistent Form User Interfaces in Microsoft Access: (Feb 20, 2023) Make your Access application feel more professional with a consistent user interface design. Form templates make it easy.
- Setting Column-Specific Colors in Microsoft Access List Boxes and Combo Boxes: (Apr 13, 2023) How to use the Format property of a query or table field to set custom colors for columns in a Microsoft Access list box or combo box control.
- The Hard Truth About Message Boxes in Microsoft Access: (May 10, 2023) Just because you know it's true, that doesn't make it any less frustrating.
- Reducing Cognitive Load: The Benefits of Consistent UI Design: (Jun 13, 2023) Reducing cognitive load through consistent UI design offers numerous benefits for both users and developers.
- Accessible Design Resources from Goldman Sachs: (Jun 20, 2023) Building accessibility into your applications improves the user experience for all users, not just those that are visually impaired.
- Avoid Double Negatives for a Better User Experience: (Jul 3, 2023) Double negatives are highly effective--if your goal is to introduce confusion--as my Beast Barracks story shows. They have no place in a user interface, though.
- Using Emoji as Button "Images" in Access: (Aug 9, 2023) One easy way to make your Access applications appear more modern is to embed emoji in the command button text.
- Size to Fit: Text Box Edition: (Sep 14, 2023) You've likely used the Size to Fit command on labels and command buttons, but did you know it can also be used for text boxes, combo boxes, and list boxes?
- Use Hidden Controls for More Reliable Code: (Sep 20, 2023) Former Access MVP Ben Clothier drops some sage advice to help us avoid potential problems with our form code-behind modules.
- Pass Values Between Forms in Access Without Using a Hidden Global Form: (Oct 2, 2023) Using a hidden "global" form is a common way to return user-entered data to your program, but there is a better way.
- Highlight the Current Control in an Access Form...Without VBA!: (Nov 20, 2023) Let's adapt Colin Riddington's excellent no-code current control highlighting technique to work with different form background colors.
- How to Filter Reports in Microsoft Access: (Dec 28, 2023) Here are 5 ways to filter reports in Microsoft Access, along with a closer look at my personal favorite approach.
- Tab Controls with Hidden Tabs: (Jan 3, 2024) This little-known and underused feature opens up some interesting design possibilities for creative Access developers.
- Viewer Question: Sort a Continuous Form by Clicking on the Column Label of a Combo Box: (Jan 11, 2024) My NewSort() function lets you easily add support for giving users a way to sort your continuous forms. But how do we sort by combo boxes' displayed text?
- Deep Dive: Improving the Access User Experience with Attached Labels: (Jan 29, 2024) In this comprehensive article, we explore attached labels in extensive depth: what they are, why you want them, and how to work with them in both the UI and VBA.
- ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
- Lazy Loading a Tabbed Form in Microsoft Access: (Aug 31, 2021) How to use "just-in-time population" to dramatically decrease the load times of complex Access forms.
- Escaping Semicolons in a Multi-Column Access ListBox: (Oct 2, 2021) When adding items to a multi-column list box, the semicolon character is used to separate columns. What if the items themselves contain semicolons?
- 2 Ways to Escape Leading Quotes when Adding Items to a List Box: (Oct 4, 2021) Leading quotation marks can cause problems when adding items to a list box or combo box. Here are 2 easy ways to deal with the issue.
- AutoFitDatasheet: A Function to Prettify Your Access Datasheets: (Oct 20, 2021) This routine resizes the columns of the active datasheet window (plus the window itself) based on its contents to make the best use of the available space.
- 6 Techniques to Control Where Forms Open On-Screen in Access: (Mar 23, 2022) With Overlapping Windows in Access, you need to think about where each form should open on-screen for the user. Here are 6 techniques to help you do that.
- 7 Ways to Loop Through Controls on a Microsoft Access Form: (Sep 6, 2022) There are many ways to use VBA to hide/show or lock/unlock groups of controls on an Access form. Here are seven different techniques you can use.
- The Reason MS Access Forms and Reports are Limited to 22 Inches: (Nov 16, 2022) With today's large monitors, many Access developers have bumped into the 22" maximum form width. But do you know why it's not 21" or 23"?
Hidden Features
- ["Hidden Features" tag page]: Show all articles with the tag "Hidden Features" (including those where "Hidden Features" is a secondary tag).
-
Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
-
Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
-
Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
-
A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
-
Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
-
VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
-
Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
-
VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
-
Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
-
Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
-
How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
-
Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
-
Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
-
DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
-
Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
-
Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
-
Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
-
Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
-
How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
-
Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
-
HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
-
VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
-
AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
-
WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
-
Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
-
Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
-
Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
-
Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
-
Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
-
Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
-
3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
-
Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
-
NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
-
Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
-
AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
-
Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
Hiding Dupe Values
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
-
Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
-
Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
-
Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
-
Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
-
Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
-
Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
-
Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
-
Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
-
Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
-
Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Database Properties for Thee: (Sep 11, 2020) The DAO Database object has a Properties collection. You can read through the list of properties to extract saved database options. You can also add your own properties to the object.
- Wherefore art thou, database properties?: (Sep 12, 2020) In my previous post, I talked about adding custom properties to the database object. I covered how to do it, but did not go into any detail about why you might want to do it. Let's remedy that now.
- Expressions vs. Code: (Oct 3, 2020) When is code not code? When it's an expression. What's the difference and who really cares? Let's explore.
- A Rounding We Will Go: (Oct 6, 2020) Two kinds of rounding, the VBA language spec vs. the Office VBA implementation, and a drop-in replacement for VBA.Round().
- Requery a Form in Place: (Oct 12, 2020) Form.Recordset.Requery. That's it. That's the whole article.
- VBA Alchemy: Turning Methods Into Properties: (Oct 19, 2020) One can check the status of screen painting in Excel, but not in Access. This turns out to be an important shortcoming. Let's remedy it.
- Blast From the Past: (Oct 26, 2020) Why use keyboard shortcuts from Access 2003 when developing in 2020? Because starting with Access 2007, the new shortcuts suck.
- VBA's Case Changing "Feature": (Nov 14, 2020) VBA likes to change the casing of our code (upper/lower/mixed). It may seem random, but it's not. Read all the details here.
- Careful What You Watch For: (Dec 8, 2020) Can the simple act of creating a Watch change the behavior of your code while debugging? Why yes, yes it can.
- Debugging Private Procedures: (May 7, 2021) After more than 14 years as a VBA developer, I recently discovered that you can debug private procedures without temporarily making them public!
- How to Check if a User Clicked [Cancel] on an InputBox in VBA: (Aug 30, 2021) It's possible to distinguish between a user clicking [OK] on an empty box or clicking [Cancel]. You just need to use this simple trick.
- Expressions vs. Code: Implicit Type Conversion: (Sep 7, 2021) In Microsoft Access, is a whole number literal implicitly treated as a Long or an Integer or a Double? As it turns out, it depends on where you ask.
- Hidden Feature: Drag and Drop Access Objects Between Files: (Dec 2, 2021) Skip the "Import Access Objects" dialog screens and use your mouse to move Tables, Queries, Forms, Reports, and code modules between Access files.
- DefType Statements in VBA: The Dark Side of Backward Compatibility: (Jan 10, 2022) Young VBA programmer, be not tempted by the dark side. DefType statements must be understood, but never used!
- Access Error Number Message Lookup: (Jan 20, 2022) Did you ever come across an error number in your Access code--maybe in an If or Select Case statement--and wonder what it was for? Wonder no longer.
- Quick and Dirty For Loops in the Immediate Window: (Feb 21, 2022) Did you know that you can write and execute entire For Loops in the VBA Immediate Window?
- Inspecting the End of a Long Variable Value in VBA: (Feb 23, 2022) You know how VBA cuts off the right side of a really long variable when inspecting its value via mouse hover? Did you know you can show the right side instead?
- Declaring and Initializing Variables in the Same Line in VBA: (Feb 24, 2022) You can't declare and initialize a variable in a single code *statement* in VBA, but you can do it in a single *line* of code with this handy trick.
- How to Show Hidden Items in the VBA Object Browser: (Apr 11, 2022) One possible fix for the "Cannot jump to '|' because it is hidden" error is to show hidden members in the VBA object browser.
- Why Does My Access Web Browser Control Default to IE 7?: (Apr 27, 2022) If web pages don't look right on your Access web browser control, it might be due to a little-known registry setting.
- HOW TO: Run Scheduled Tasks with Microsoft Access: (May 9, 2022) This underused MS Access command-line argument opens up a whole new world of possibilities when it comes to scheduling recurring tasks in Access.
- VBA Immediate Window Line and Character Limits: (Jul 1, 2022) Don't take my word for it (or anyone else's on the internet, for that matter). Prove the limits to yourself with some simple VBA.
- AccHitTest: Returns the Form Control the Mouse Clicked On: (Aug 1, 2022) This undocumented form function can help you write a generic click event for label controls.
- WizHook: A Hidden Access Object With Intriguing Potential: (Oct 25, 2022) Font-aware AutoFit of text and combo boxes, auto-bracketing of illegal field names, sorting an array of strings...the possibilities are finite!
- Select Entire Sub or Function in VBA with a Double-Click: (Nov 14, 2022) Yet another hidden feature of the VBA editor that eluded me for more than fifteen years.
- Select Entire Module in VBA With Control + Click: (Nov 15, 2022) Learn 4 different ways to select the entire contents of a VBA module, plus a bonus keyboard shortcut tip for switching between two active code modules.
- Access End-User Shortcuts: (Nov 24, 2022) Shortcut keys to toggle the dropdown state of a combo box, copy field values from the previous record, enter the current date and time, and more.
- Dark Mode in VBA: (Dec 13, 2022) VBA may not have a preset "Dark Mode" like other modern development environments, but it's not hard to create one yourself.
- Understanding the Access ColumnWidth VBA Property: (May 22, 2023) The ColumnWidth property of an Access datasheet has some strange behavior, especially when it comes to its special values: Default Width and Size to Fit.
- Quick & Dirty Block Comments in VBA: (Jun 23, 2023) Everybody knows there's no block comment character in VBA, right? Or is there...
- 3 Situations for Using Named Arguments in VBA: (Jul 27, 2023) One of the lesser-known features of VBA is the ability to use named arguments in your calling code. Here are three situations just begging for named arguments.
- Customizing the Quick Access Toolbar in Microsoft Access: (Aug 25, 2023) Get back some of that pre-2007 Office toolbar goodness with the Quick Access Toolbar (QAT). Vote for your favorite QAT commands.
- NEW & IMPROVED: The "Unset" Enum Item: (Nov 29, 2023) This hidden feature of VBA lets you take advantage of my "Unset" enum item technique without cluttering up your IntelliSense.
- Concatenating Strings in VBA: Plus (+) vs. Ampersand (&): (Jan 1, 2024) Both the ampersand and the plus sign operators can be used to join strings in VBA. Clever developers can use this to their advantage.
- AutoKeys: One of Access's Most Well-Hidden Secrets: (Mar 28, 2024) How I used one of the least discoverable features of Microsoft Access to create a global help shortcut key integrated with wiki-based documentation.
- Three Reasons to Use Named Arguments in VBA: (May 22, 2024) This relatively unknown (and massively underused) syntax can make your VBA code much more readable in certain situations.
- ["Hiding Dupe Values" tag page]: Show all articles with the tag "Hiding Dupe Values" (including those where "Hiding Dupe Values" is a secondary tag).
- Hiding Duplicate Values in Microsoft Access Forms and Reports: (Feb 14, 2024) A series of articles with basic through advanced techniques for hiding duplicate column values in Microsoft Access reports and continuous forms.
- Sample Data for the "Hiding Duplicate Values" Series: (Feb 15, 2024) This article contains the sample data for following along with the rest of the "Hiding Duplicate Values" series.
- Hiding Duplicate Values in Reports: (Feb 16, 2024) There are two primary ways to group records in an Access report: with AND WITHOUT group headers. ... Wait, what?!?!
- Hiding Duplicate Values in Continuous Forms via Subqueries: (Feb 19, 2024) In this installment, we use GROUP BY subqueries to generate a read-only record source for a continuous form that hides duplicate header values.
- Hiding Duplicate Values in Continuous Forms via Left Joins: (Feb 20, 2024) In this installment, we use Bill Karwin's inequality LEFT JOIN technique to handle multi-column sorting without grinding everything to a halt.
- Use DCount() to Make Editable Continuous Forms with Hidden Duplicate Values: (Feb 21, 2024) In this installment, we use the DCount() domain aggregate function to create an editable continuous form with hidden group header values.
- Use Custom Functions to Hide Multi-Level Group Headers on Editable Continuous Forms: (Feb 22, 2024) In this installment, we use custom recordset-based VBA functions to implement multi-level group headers in an editable continuous form.
- Use Caching to Speed Up Editable Forms with Hidden Duplicate Values: (Feb 23, 2024) In this installment, we reduce our database calls by more than 80% by shifting the bulk of the work to high-performing VBA dictionary structures.
- Invalidating the Cache on the Hidden Duplicate Values Form: (Feb 26, 2024) In this installment, we demonstrate how simple it is to refresh the cache when you use self-healing object variables.
- Triggering Cache Invalidation on the Hidden Duplicate Values Form: (Feb 27, 2024) In this installment, we explore two different approaches for deciding when to invalidate our cache: user-triggered and automatic.
Holiday
- ["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."
Humorous
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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."
- ["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
- ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
Intermediate
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
-
Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
-
Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
-
Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
-
Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
-
Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
-
Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
-
Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
-
Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
-
Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
-
VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
-
Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
-
The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
-
Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
-
Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
-
To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
-
Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
-
Sources of Technical Debt: (Jan 16, 2021) 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.
-
Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
-
Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
-
Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
-
First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
-
4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
-
The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
-
Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
-
Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
-
Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
-
How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
-
4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
-
CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
-
4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
-
How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
-
The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
-
Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
-
5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
-
Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
-
Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
-
Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
- Interfaces, Conceptually: (Oct 20, 2020) Interfaces can be a difficult concept to grasp conceptually. To help make sense of the concept, consider these real world examples.
- Interfaces, Practically: (Oct 21, 2020) A real world example using Active Directory lookups.
- Backward-Compatible Refactoring: (Oct 22, 2020) How can you completely change the way you interact with a class without breaking backward compatibility? Interfaces.
- Cookie Cutter Forms: (Oct 23, 2020) How do you reuse a form with external dependencies in multiple projects? Interfaces.
- Dependency Injection (sort of): (Oct 24, 2020) For a few common dependencies, we can cheat by using a singleton class. Within that class, we'll type those dependencies as interfaces.
- Cleaner IntelliSense: (Oct 25, 2020) How to clean up your object's auto-complete dropdown list when it starts to look like that of the MacBook Wheel.
- Debugging Sideways Images in Access: (Nov 22, 2020) Ever import a normal-looking image in Access, only to have it turn sideways on you in the image control? The problem may lie in the EXIF data.
- Decompile then Deploy: (Nov 23, 2020) Save disk space and increase startup performance of your program updates by running /decompile before deployment.
- Bang! Dot. Default: (Dec 9, 2020) Three ways to reference form and report controls. Which way is best?
- VBA Code Generation Trick: (Dec 12, 2020) Using Notepad++ to transform existing code into a VBA string that generates itself.
- Data Transfer Objects in VBA: (Dec 13, 2020) You can't create a collection of custom types in VBA. What can we do instead?
- The Subtle Dictionary Key Bug: (Dec 15, 2020) Always explicitly call the .Value property when using fields or controls as Dictionary keys. Else the bugs come crawling!
- Checklist: Better Access Applications: (Dec 18, 2020) Good. BETTER. Best. Is your Access application good enough to sell?
- Short-Circuiting VBA?: (Dec 22, 2020) Beware of clever workarounds for missing language features. Sometimes the simple approach is best.
- To Compile or Not to Compile: (Jan 12, 2021) With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
- Decompile Before Deployment: (Jan 13, 2021) Before deploying my Access applications, I like to strip them down to their bare bones.
- Sources of Technical Debt: (Jan 16, 2021) 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.
- Parameterized Constructors in VBA: (Mar 21, 2021) VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
- Access Web Browser Control: (Apr 15, 2021) Documentation is scarce for the legacy Access Web Browser Control. And that makes Daniel Pineault's page a goldmine of information.
- Come Here Often?: (Jun 3, 2021) When designing a user experience (UX), the single most important question to ask yourself is this: How often will this feature be used?
- First, Make It Right (Then Make It Fast): (Jun 28, 2021) In queries, nested IIf statements are fast and (relatively) easy to write. The problem is they are nearly impossible to read.
- 4 Uses for Transparent Command Buttons in Microsoft Access: (Jul 3, 2021) When you set a command button's Transparent property to True, you won't see it but you can still interact with it. This opens up a world of possibilities.
- The "Unset" Enum Item: (Jul 21, 2021) This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
- Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers: (Jul 27, 2021) 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.
- Enforcing a Single-Row Table in MS Access and SQL Server: (Jul 28, 2021) 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.
- Runtime Mode in Microsoft Access: (Aug 12, 2021) There are two ways to force a full version of Access to run a front-end file in runtime mode: the /runtime switch and changing the extension to .accdr.
- How to Construct a Bit Mask in VBA: (Aug 16, 2021) What's the safest way to construct a bit mask in VBA? Your preferred approach may be more dangerous than you realize.
- 4 Ways to Automate Sending Emails from Microsoft Access: (Aug 27, 2021) Manually sending a single email from an email client is easy. Automating email sending, by contrast, is deceptively hard.
- CurrentDB and the "Object invalid or no longer set" error: (Oct 6, 2021) Misuse of the CurrentDb function is a common cause of the "Object invalid or no longer set" error. Are you using it safely?
- 4 VBA PowerShell Functions: (Oct 23, 2021) Microsoft Access MVP Daniel Pineault provides four easy-to-use routines for integrating PowerShell with VBA.
- How to Remove the Time Portion From a Date Variable in VBA: (Dec 14, 2021) In this article, I run a series of experiments to explore how different time-stripping approaches work in VBA.
- The IIf() Function vs. The IIf() Statement: (Jan 3, 2022) They may look identical, but there is a very important difference in how they get evaluated.
- Karl's Catalog: A Checklist of Access Best Practices: (Nov 9, 2022) Karl Donaubauer's checklist of Microsoft Access best practices offers a wealth of information to beginners and professional developers alike.
- 5 Types of Settings for Microsoft Access Applications: (Jan 31, 2023) How you store settings in Microsoft Access depends on their scope. Understanding the scope of your settings is critical to ensure you store them the right way.
- Open the Windows Color Dialog from VBA: (Feb 6, 2023) If you need to get Access color values from your users, this is the easiest way to do it.
- Documenting the Import-Export Specification System Tables: (Nov 8, 2023) Documentation of the meaning and typical values that get saved to the Import-Export specification system tables: MSysIMEXSpecs and MSysIMEXColumns.
- Set the Access Application Title Bar to the Full Path of the File at Startup: (Jan 26, 2024) Today's tip helps you keep track of which Access file is which when you have several similar Access files open at the same time.
Leadership
- ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
-
Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
-
Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
List Fields
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
-
ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
-
ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
-
ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Leadership Principles: (Oct 19, 2022) If you live by these six principles, it is impossible to fail as a leader.
- Leadership Principle: You Can Delegate Authority But Not Responsibility: (Nov 8, 2022) It's not easy to earn the trust of a "subordinate" who's almost twice your age. It's even harder to do it in a single day.
- ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
- ListFields() Part 1: Listing Table Fields in the Immediate Window: (Dec 6, 2022) An easy way to reduce context switching between the VBA IDE and the Access application window is to list table field names in the immediate window.
- ListFields() Part 2: An Optional Prefix: (Dec 7, 2022) The ListFields() routine expands to include optional table/alias prefixes for outputting fully qualified field names.
- ListFields() Part 3: Field Details: (Dec 9, 2022) In part 3, we add an optional parameter to the ListFields() function to display the field details in the immediate window.
Long-Form
- ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
Memory Management
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
-
Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
-
Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
-
Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
-
Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
-
Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- ["Memory Management" tag page]: Show all articles with the tag "Memory Management" (including those where "Memory Management" is a secondary tag).
- Large Address Aware Flag: (Nov 16, 2021) Getting a lot of "Out of memory" errors in newer versions of Access? This trick can more than triple your available memory in 32-bit versions of Access.
- Memory Management in VBA: 3 Keys to Avoiding Memory Leaks: (Mar 29, 2022) Managing memory in VBA is a piece of cake, especially if you follow three simple guidelines.
- Virtual vs. Physical Memory in the Context of Microsoft Access: (Nov 23, 2022) Are you noticing more "System Resource Exceeded" and "Out of Memory" errors in newer versions of 32-bit Access? It's not your imagination. Here's what's going on.
- Virtual Machine Memory: An Explainer for Access Developers: (Dec 1, 2022) Virtual machines present an interesting twist when it comes to memory management issues in Microsoft Access.
- Monitoring Memory Usage in a 64-bit Access Application: (Dec 2, 2022) According to the Windows API, my 64-bit Access application uses more than 2 TB (that's *terra*-bytes) of memory. Something tells me that's not right...
Meta
- ["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.
Migration
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
-
Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
-
Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
-
SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
-
Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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.
- ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
- Mystery of the Ancients: (Sep 1, 2021) The Ultimate Guide to Recovering Password-Protected, Access 97 Format .MDB Files
- Convert Common Access Field Defaults to SQL Server: (Apr 21, 2022) Here's the Select Case statement I use to convert common Access field default calculations--Now(), Date(), etc.--to their SQL Server equivalents.
- SQL Server Migration Steps: (Jun 7, 2022) My SQL Server migration philosophy consists of two priorities: (1) Avoid disasters and (2) Minimize production downtime.
- Scripted SQL Server Migrations: (Jun 9, 2022) Use this batch file to automatically backup a database on one instance of SQL Server and restore it on a different instance of SQL Server.
Military
- ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
Performance Tips
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
-
Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- ["Performance Tips" tag page]: Show all articles with the tag "Performance Tips" (including those where "Performance Tips" is a secondary tag).
- Reader Question: Is it worth running an Access front-end from a RAM disk?: (Oct 19, 2023) Is it worth the complication to run an Access front-end file from within a RAM disk? The answer may surprise you. Or it may not. (Am I doing clickbait wrong?)
Presentations
- ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
-
Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
-
Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
-
Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
-
twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
-
3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
-
¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
-
twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
-
Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
-
Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
-
twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
-
Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
-
clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
-
Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
-
DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
-
DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
-
DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
-
UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
Professional Development
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Advanced Combo Box Techniques: (Jun 18, 2021) A list of resources and further reading to support my presentation on Advanced Combo Box Techniques.
- Troubleshooting Query Performance: (Mar 17, 2022) A recording of the presentation, a list of resources, and further reading for my presentation on Troubleshooting Query Performance.
- Understanding COM - DevCon 2022: (Apr 28, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, Understanding COM.
- twinBASIC Update - DevCon 2022: (Apr 29, 2022) Links and resources from my talk today at Access DevCon Vienna 2022, twinBASIC: Happy First Birthday!
- 3 Access DevCon 2022 Video Recordings Released: (May 12, 2022) Check out the recordings of my twinBASIC Update, Kevin Bell's new AppLauncher service, and Alessandro Grimaldi's VBA Tips and Tricks.
- ¡twinBASIC Va a Madrid!: (Jun 17, 2022) ¡Hola, Madrid! Muchas gracias a Juanjo Luna por invitarme a hablar en su conferencia anual de Access.
- twinBASIC en Español: (Jun 29, 2022) My presentation on twinBASIC to the Spanish Access User Group is now available on YouTube. Go check it out!
- Building Ribbons in Code: (Jul 6, 2022) A list of resources and further reading to go with my Access User Group presentation on Building Ribbon Interfaces in Code.
- Defensive Programming - DevCon 2023: (Apr 26, 2023) Links and resources from my talk tomorrow at Access DevCon Vienna 2023, Some Bugs are Better than Others: Defensive Programming Tips and Tricks.
- twinBASIC Update: DevCon 2023: (Apr 27, 2023) Links and resources from my talk today at Access DevCon Vienna 2023, twinBASIC + Access: Future Plans.
- Form Templates Presentation to the Denver Area Access User Group: (Jun 15, 2023) A list of resources and further reading for my presentation on Form Templates in Microsoft Access.
- clsImExSpecs Presentation to the Access Europe User Group: (Dec 6, 2023) A list of resources and further reading for my presentation on my custom Import/Export Specifications class module.
- Access Day 2024: The Access Developer's Guide to Version Control: (Mar 15, 2024) A list of resources and further reading for my 2024 Access Day presentation on version control with Microsoft Access.
- DevCon 2024: VBIDE Addin Creation with twinBASIC: (Apr 18, 2024) Links and resources from my talk today at Access DevCon Vienna 2024, Custom VBIDE Addin Creation with twinBASIC.
- DevCon 2024: Version Control with Access: (Apr 19, 2024) A list of resources and further reading for my 2024 DevCon Vienna mini-presentation on version control with Microsoft Access.
- DevCon Vienna 2024 Public Session Recordings: (Apr 30, 2024) Check out the recordings of my twinBASIC Update and Colin Riddington's Advanced Form Designs from Access DevCon Vienna 2024.
- UKAUG 2024: twinBASIC: Past, Present, and Future: (Nov 20, 2024) Links and resources from my talk today at the UK Access User Group 2024 Autumn Conference at the historic University of Oxford.
- ["Professional Development" tag page]: Show all articles with the tag "Professional Development" (including those where "Professional Development" 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
- ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
-
Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
-
A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
-
Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
-
Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
-
Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
Quick Tip
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
-
Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
-
Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
-
Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
-
Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
-
Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
-
Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
-
Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
-
Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
-
Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
-
How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
-
Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
-
Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
-
Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
-
QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
-
HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
-
Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
-
QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
-
Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
-
Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Reformat an INSERT INTO...VALUES Statement with ChatGPT: (Aug 7, 2023) Let's use ChatGPT to help us debug an SQL INSERT INTO ... VALUES statement by lining up the fields with the values.
- A Simple Trick to Help ChatGPT Provide Correct Answers: (Aug 24, 2023) How you ask ChatGPT to provide a solution can have a profound impact on the correctness of the solution it provides.
- Build Better Prompts with AI: (Sep 28, 2023) Who better to help you improve your AI prompts than AI itself? This meta prompt will help you get better results from your most used prompts.
- Using AI to Explain Unfamiliar Command Lines from the Internet: (Jan 25, 2024) Let's use ChatGPT to explain how complex command lines work.
- Get Max Row by Group with ChatGPT: (Feb 8, 2024) This ChatGPT prompt lets you easily implement Bill Karwin's clever LEFT JOIN solution to a common data selection problem in SQL.
- ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
- Quick Tip: Emoji Lookup in Windows: (Oct 28, 2021) Looking for the fastest way to look up and insert emojis in Windows? This shortcut makes it quick and easy.
- Quick Tip: Alt Codes in Windows: (Nov 6, 2021) Checkmarks, bulleted lists, section symbols, pi, daggers, copyrights, etc. Each of these symbols can be entered in Windows using an easy keyboard shortcut.
- Inserting a Blank Line in the VBA Immediate Window: (Feb 3, 2022) Did you know you can insert a newline character in the Immediate Window without executing the current line of code?
- Quick Tip: Force IntelliSense to Appear When Writing VBA: (Feb 18, 2022) Does the IntelliSense dropdown ever disappear when you're writing VBA? Do you backspace and re-type the dot to get it back? There's a better way.
- Preventing Line Break After Debug.Print Statement: (Mar 1, 2022) Every time you call Debug.Print in VBA it outputs to a new line in the Immediate Window. ... But what if it didn't?!?!
- Shortcut Key to Comment/Uncomment Blocks of Code in VBA: (Apr 18, 2022) You don't need 3rd-party tools to add keyboard shortcuts for commenting and uncommenting code blocks in VBA with this trick.
- Quick Tip: Set Next Statement with Mouse: (May 5, 2022) Try this tip the next time you use the Edit & Continue feature when debugging. After more than 15 years of developing VBA, I'm still learning new things.
- Adding References from VBA: (Aug 25, 2022) Did you ever wish you could bypass the Tools > References dialog entirely when adding references in Access? Automate the process with some simple VBA.
- Micro-Efficiency: Duplicating Line(s) of Code in VBA: (Jan 17, 2023) With this technique, you'll save enough time to steal two and a half extra glances at your watch each day. Use it wisely.
- How to Duplicate a Line of Code in VBA: (Jan 18, 2023) It's not quite a single shortcut key, but it's nearly as efficient.
- Quick Tip: 4 Ways to Select the Bottom Control in a Stack: (Jan 30, 2023) There are many situations that call for two (or more) controls to be stacked on top of each other. In those situations, how does one select the bottom control?
- Quick Tip: Code Comment Breadcrumbs: (May 26, 2023) This quick tip is a great way to boost the signal-to-noise ratio of your code without sacrificing valuable context from your decision-making process.
- Quick Tip: Preventing Accidental Double-Clicks: (May 31, 2023) Pop quiz, hotshot: What would happen if a user double-clicked every button in your Access application? Would there be any unintended consequences?
- QuickTip: Navigation Captions: (Jan 22, 2024) Even after 17 years of developing in Microsoft Access, I'm still learning about features that have been there the whole time...
- HOW TO: Access the Windows Startup Folder: (Feb 2, 2024) In previous versions of Windows, the Startup folder was easy to find from the Start Menu. This quick tip makes the Startup folder easy to find again.
- Clearing the Windows 10 "White Bar of Doom": (Feb 6, 2024) A quick fix for the "White Bar of Doom" that occasionally appears on maximized windows in Windows 10. No reboot required!
- QuickTip: Reproducible SELECT Results: (Apr 2, 2024) Reproducing behavior is the essential first step to debugging problems. Save yourself future SQL debugging headaches with this quick tip.
- Quick Tip: Connect Multiple Outlook Accounts to Zapier: (Apr 9, 2024) Automatic login is convenient most of the time, but it can be frustrating when trying to configure multiple accounts for Zapier application integrations.
- Quick Tip: Instant Find in the VBA IDE: (May 1, 2024) Somehow I went more than 20 years writing code in VBA without knowing about this handy shortcut key.
Quotes
- ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
-
Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
-
Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
-
"Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
Reader Challenge
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
-
Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
-
Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
-
Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
-
Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
-
Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
-
Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
-
Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
-
Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Byte-Sized Wisdom: Debugging: (Mar 14, 2023) You know what debugging is like? Debugging is like...
- Byte-Sized Wisdom: Testing: (Mar 4, 2024) All software is tested...
- "Lead Generation is a Misnomer": (May 9, 2024) "We don't generate leads, we intercept opportunity."
- ["Reader Challenge" tag page]: Show all articles with the tag "Reader Challenge" (including those where "Reader Challenge" is a secondary tag).
- Reader Challenge: Write a Formula to Calculate Gift Totals in "The Twelve Days of Christmas": (Dec 21, 2022) How many total gifts does one's true love deliver by the nth day of Christmas? It's a deceptively tricky problem to solve.
- Calculating Gift Counts for "The Twelve Days of Christmas": Looping Edition: (Dec 22, 2022) In the first solution to my recent reader challenge, I use a loop to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
- Calculating Gift Counts for "The Twelve Days of Christmas": Recursion Edition: (Dec 23, 2022) In the second solution to my recent reader challenge, I use recursion to calculate the cumulative number of gifts given for each day of the "12 Days of Christmas."
- Reader Challenge: Einstein's Five-House Logic Problem: (May 24, 2023) In part 1 of this series, I introduce a classic logic problem that took me nearly two hours to solve by hand. Later in the series, we'll use Access to program a solution.
- Solving the Five-House Logic Problem by Hand: (May 25, 2023) In this follow-up to my post on the classic Five-House Logic Problem, I provide the solution to the riddle plus a few tips for finding it.
- Logic Puzzle Solution Part 1: The oNeighborhood Class Module: (May 29, 2023) In part 1 of my Access solution for the five-house logic problem, I demonstrate the class module I used to model a neighborhood configuration.
- Logic Puzzle Solution Part 2: Testing the neighborhood Class Module: (May 30, 2023) In part 2 of my Access solution for the five-house logic problem, we test the neighborhood class module.
- Logic Puzzle Solution Bonus: SQL Server Edition: (Jun 5, 2023) Reader Johann Preissl writes in with a pure T-SQL solution to the Five-House Logic Puzzle. No tables or VBA required!
- Logic Puzzle Solution Part 3: Counting the Possible Configurations: (Jul 28, 2023) When I first read through the five-house logic puzzle, I kept thinking, "I should just brute force this thing." I was so naive...
Recap
- ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
-
Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
-
Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
-
Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
-
Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
Report Builder
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
-
Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
-
Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
-
Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
-
Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Access Dev Team Progress Update: New Web Browser Control: (Nov 21, 2022) The Access team offers a sneak peek at the upcoming Edge-based browser control. Highlights include an estimated release date and future migration challenges.
- Access Dev Team Progress Update: VBA Macro Code Signing: (Nov 25, 2022) The Access team offers a sneak peek at the new and improved VBA code signing experience. The feature is in public beta, and Microsoft is looking for testers.
- Access Dev Team Progress Update: Dataverse Export Improvements: (Nov 28, 2022) The Access team provides an update on impending improvements to the Dataverse export feature.
- Microsoft MVP Summit 2024: Top Takeaways for Access Developers: (Mar 21, 2024) From new Access features to VBScript deprecation and the coming end of VBA in Outlook, here's what you need to know from the 2024 MVP Summit.
- ["Report Builder" tag page]: Show all articles with the tag "Report Builder" (including those where "Report Builder" is a secondary tag).
- Advanced Report Builder: (Oct 18, 2023) Announcing a new cookbook-style series of advanced articles focused on creating a custom report builder in Microsoft Access.
- Advanced Report Builder Form: (Oct 20, 2023) This is a reference for my Advanced Report Builder form. The form is broken down into eight sections with links to articles explaining each one.
- Report Builder: The Local ReportControls Table: (Oct 23, 2023) A description of the local table that serves as the foundation for my Advanced Report Builder.
- Report Builder: The Reports & Templates Tables: (Oct 25, 2023) A description of the tables used to store built-in and user-created report templates for use with my Advanced Report Builder.
Reports
- ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
-
Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
-
Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
-
OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
-
The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
-
Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
-
Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
-
PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
-
Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
-
Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
-
Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
-
Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
-
HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
Ribbon
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
-
Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
-
Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
-
XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
-
Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Report Annoyances: (Mar 10, 2021) Five things I hate about the default behavior of DoCmd.OpenReport.
- Previewing Reports: (Mar 11, 2021) That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
- OpenReport Shows Wrong Data: (Mar 12, 2021) Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
- The 'OpenReport' Action Was Canceled: (Mar 13, 2021) Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
- Avoid the Cascading Maximize: (Mar 14, 2021) Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
- Future Compatibility: (Mar 15, 2021) Use this trick to support future functionality while still getting your code to compile in older versions of Access.
- PreviewReport Function: (Mar 16, 2021) This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
- Access Shape Drawing Reference: (Jul 5, 2022) With a bit of creativity, you can draw just about anything on an Access report. Everything you need to know is in Crystal Long's definitive guide.
- Using Temp Tables as Report Record Sources: (Nov 4, 2022) If you're having trouble building a query to run a complex report, you may be better off populating a temp table and using that as your report's record source.
- Detect if an Access Report is in Preview Mode, Report Mode, or Being Sent to the Printer: (Feb 21, 2023) How do you know if a user is viewing a report on screen or if they sent it to the printer? With this simple technique from Access MVP, Karl Donaubauer.
- Never Forget to Set Your Report Caption Again: (Mar 6, 2023) With this trick, it's nearly impossible to forget to set your report's Caption property in Microsoft Access.
- HELP! My Access Report is Missing Information When my Users Run It: (May 12, 2023) Your Access report runs fine on your computer, but it's broken when an end user runs it. What gives?
- ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
- Icon Dimensions in the Office Ribbon: (Feb 4, 2022) Custom ribbon icons look sharpest when they are displayed at their native resolution.
- Office Ribbon Development Resources: (Jun 22, 2022) Links to resources and ribbon builders for VBA developers who want to add a professional touch to their applications with custom ribbon interfaces.
- XML Callbacks: Adding Functionality to the Office Ribbon: (Jun 23, 2022) To unlock the full potential of the Microsoft Office ribbon, you need to understand the role of callback functions. This quick intro will get you started.
- Setting the Ribbon Name in Code: (Jun 28, 2022) You don't need to use the options dialog to set a custom ribbon for your Microsoft Access application.
Risk Management
- ["Risk Management" tag page]: Show all articles with the tag "Risk Management" (including those where "Risk Management" 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
- ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
ShowForm
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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
- ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
-
Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
-
Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
-
Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
-
Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
-
Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
-
Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
Signal vs. Noise
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Evolution of a Function: ShowForm(): (Jul 11, 2023) Code is a living thing. Letting it grow organically over time helps ensure that you get exactly the features you need. My ShowForm() function is a prime example.
- Evolution of a Function: ShowForm() Part 1: (Jul 12, 2023) Part 1 of the ShowForm function is an MVP (minimum viable product) which is little more than a convenience function wrapper around DoCmd.OpenForm.
- Evolution of a Function: ShowForm() Part 2: (Jul 13, 2023) As our ShowForm function evolves, we introduce a very basic capability to create and manage multiple form instances.
- Why Creating Multiple Copies of a Form Is Bad Practice: (Jul 18, 2023) Creating multiple *instances* of a single form may seem like more work than just making multiple *copies* of a form, but it's an investment worth making.
- Evolution of a Function: ShowForm() Part 3: (Jul 25, 2023) As our ShowForm function continues to evolve, we begin refactoring and addressing several shortcomings of our earlier efforts.
- Evolution of a Function: ShowForm() Part 4: (Jul 26, 2023) Years of real-world usage revealed edge cases that required bug fixes in our function. This is why Joel Spolsky says old code is better than new.
- ["Signal vs. Noise" tag page]: Show all articles with the tag "Signal vs. Noise" (including those where "Signal vs. Noise" 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.
Simple vs. Easy
- ["Simple vs. Easy" tag page]: Show all articles with the tag "Simple vs. Easy" (including those where "Simple vs. Easy" is a secondary tag).
-
Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
-
VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
SQL
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
-
Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
-
When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
-
Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
-
T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
-
SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
-
Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
-
HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Making the Complex Simple: Aquaponics Edition: (Sep 27, 2021) The most impressive software project any of my job applicants had written produced only a single, numeric output.
- VBA: A Simple Programming Language: (Oct 14, 2022) VBA is a simple programming language. But is that really such a bad thing?
- ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
- Finding Duplicate People by Date of Birth: (Nov 5, 2021) Let's explore the GROUP BY syntax with an exercise in identifying duplicate records in a Person table.
- When to Use Right Outer Joins in SQL: (Dec 24, 2021) What's the difference between a RIGHT JOIN and a LEFT JOIN and why use one versus the other?
- Fixing Circular References in Access Queries: (Feb 1, 2022) Did you get the error message, "Circular reference caused by alias 'MyField' in query definition's SELECT list"? Don't worry; it's an easy fix!
- T-SQL ISNULL() vs. VBA IsNull() vs. Jet IS NULL vs. Access VBA Nz(): (Apr 15, 2022) How do I check thee for NULL? Let me count the ways.
- SQL Gotcha: When an OUTER JOIN Accidentally Becomes an INNER JOIN: (Jun 2, 2022) If you apply a WHERE filter directly to the OUTER JOIN side of a query you will effectively turn it into an INNER JOIN.
- Efficient Querying: Finding Maximum Values for Each Distinct Value in a Column: (Apr 12, 2023) A high-performance alternative to subqueries for solving a tricky query problem.
- HOW TO: Make Backward-Compatible Changes to SQL SELECT Queries: (Jan 2, 2024) The `AS` keyword in SQL allows you to replace table fields with calculated columns while retaining the original name.
SQL Azure
- ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
-
SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
-
SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
-
Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
-
Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
SQL Server
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
-
Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
-
All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
-
Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
-
Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
-
SQL Server Read-Only Mode: (Jan 1, 2021) 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.
-
Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
-
Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
-
ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
-
Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
-
Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
-
Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
-
Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
-
Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
-
UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
-
Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
-
Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
-
Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
-
Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
-
Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
-
Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
-
3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
-
Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
-
How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
-
SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
-
Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
-
Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
-
Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
-
IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
-
Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
-
How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
-
Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
-
HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
-
Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
-
5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
-
Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
-
Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
-
B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
-
How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
-
Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
-
Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
-
Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- SQL Azure for Access Developers: (Jan 17, 2022) If you've been thinking about migrating some of your Access application data to SQL Azure, this series of articles is for you.
- SQL Azure Pricing Overview: (Jan 19, 2022) Figuring out SQL Azure pricing is straightforward. As in, it's just as pleasant as if you were to drive your car straight forward into a wall.
- Creating Your First Azure SQL Database: The Basics: (Jan 21, 2022) Part 2 in my series on SQL Azure for Access Developers takes you step-by-step through the process of creating a new Azure SQL Database.
- Configuring Firewall Settings on Azure SQL Server: (Jan 24, 2022) The simplest way to configure access to Azure SQL Server is via IP4-based firewall rules. We'll explore the pros and cons of a few different approaches.
- ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
- Peeking Under the Hood: (Oct 15, 2020) Don't let these gotchas trip you up when using SQL Server as a backend for Microsoft Access.
- All Hail Ola!: (Nov 12, 2020) If you're managing SQL Server and you're not using Ola Hallengren's scripts, then you're doing it wrong.
- Cloning a SQL Server Database: (Nov 13, 2020) The fastest, simplest, and cheapest way to clone a SQL Server database for debugging or testing. Even works with SQL Server Express!
- Tuning Access Query Performance: (Nov 15, 2020) The four best tools/techniques for tuning Access query performance: JetShowPlan, Process Monitor, TraceSQLMode, and SQL Profiler.
- SQL Server Read-Only Mode: (Jan 1, 2021) 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.
- Working around the "Reboot Required" error when installing SQL Server: (Jan 3, 2021) A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
- Yes/No Fields in SQL Server: (Jan 4, 2021) The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
- ODBC Driver 17 Prevents SSMS Install: (Jan 26, 2021) 3 steps to fix SSMS installation error 0x80070643: (1) Uninstall ODBC Driver 17; (2) Restart the machine; (3) Rerun the installer
- Playing Telephone with SQL Server: (Jan 27, 2021) You won't believe how Access and SQL Server actually talk to each other. You're going to need to see this for yourself.
- Role-based SQL Server Security: (Jan 30, 2021) There are many reasons to implement SQL Server roles even if you use Windows Authentication with Active Directory security groups.
- Securing Access and SQL Server: (Feb 9, 2021) Wherein Anders Ebro demonstrates how easy it is to circumvent application-level security in an Access program.
- Brent Ozar: Date Table Fan: (Mar 1, 2021) 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.
- Setting SQL Server Field Descriptions: (May 26, 2021) There are two basic ways to set field descriptions in SQL Server: via SSMS and T-SQL. Let's explore both.
- UPSERT a Column Description in SQL Server: (May 27, 2021) Let's combine the stored procedures to Update and Insert SQL Server field comments into a single, all-encompassing solution.
- Setting Field Descriptions on Linked SQL Server Tables: (May 28, 2021) What good are field descriptions in SQL Server if you don't see them in your Access front-end? Here's some code to bring those comments forward into Access.
- Pushing Field Comments to SQL Server: (Jun 1, 2021) A VBA routine that takes field comments from a front-end linked table and pushes them to the corresponding back-end table in SQL Server.
- Trust But Verify: (Sep 4, 2021) What Ronald Reagan's Words Can Teach Us About the Sample Code We Find on the Internet
- Linking to SQL Server Date Fields from Microsoft Access: (Sep 18, 2021) I always avoided SQL Server's DATE type in favor of the DATETIME type's better compatibility with MS Access. A newer ODBC driver has me changing my mind.
- Floating Point Arithmetic in VBA vs. SQL Server: (Sep 23, 2021) VBA and SQL Server do not perform floating-point operations the same way. Being aware of this difference could save you hours of frustration someday.
- Unit Testing Tool for SQL Server: (Sep 28, 2021) This open-source database unit testing tool should help make test-driven database development easier to manage.
- 3 Gotchas of the SQL BETWEEN Statement: (Dec 10, 2021) The SQL BETWEEN statement produces very readable condition expressions. But developers of all skill levels can still get into trouble with it.
- Quick Way to Troubleshoot SQL Server ADO Connections: (Dec 21, 2021) This simple trick provides you with plenty of clues when debugging a failed SQL Server connection on a user's computer.
- How Access Reads Data From SQL Server: (Feb 16, 2022) How does Microsoft Access pull data from SQL Server? You'll be amazed when we pull back the curtain to expose how Access interacts with SQL Server.
- SQL Server Connectors in 2022: (Feb 19, 2022) To get access to the latest features--especially security features--be sure you're using the latest ADO provider and ODBC driver for SQL Server.
- Editing Data Directly in SSMS: (Mar 4, 2022) Query results in SQL Server Management Studio are read-only by default. Follow these steps to edit SQL Server table data directly inside SSMS.
- Making Sense of SQLOUT.TXT: (Mar 9, 2022) You've enabled ODBC Trace SQL Mode and created a sqlout.txt file. But do you know what to do with it now? Let's explore.
- Save $3,500 by Creating Scheduled Backups Using SQL Server Express: (Apr 6, 2022) You don't need to spend big bucks to get automated database backups with SQL Server. This simple step-by-step process is nearly foolproof.
- IIF ... IS NULL vs. Nz(): Testing a Hypothesis: (May 13, 2022) Which is better in a WHERE clause: IIf...Is Null or Nz()? Or is there a third option that's better than both of those?
- Advanced Server-Side SQL Server Query Troubleshooting: (May 16, 2022) The XEvent Profiler in SSMS is a powerful troubleshooting tool, but what happens when the standard sessions are not enough? We need to customize...
- How to Install SQL Server on a Read-Only Domain Controller (RODC): (May 18, 2022) The official Microsoft documentation says it's not possible, but with a little ingenuity and poor judgment, we can get SQL Server to run on an RODC.
- Deleting a Large Number of Records in SQL Server: (May 24, 2022) Let's explore four options--two bad and two good--for deleting one million or more records from a single SQL Server table.
- HOW TO: Automate Batch Deletion of SQL Server Records: (May 25, 2022) Using a single DELETE statement to remove 20 million+ records from SQL Server is a bad idea. Here's a better approach.
- Epoch Differences Between VBA and SQL Server: (Dec 16, 2022) Do you have unexplained dates of December 30, 1899 in your SQL Server database? VBA's epoch (i.e., zero date) could be the culprit.
- 5 Tips for Making Changes on Live SQL Server Databases: (Jan 12, 2023) Making database changes on production? These 5 tips will make one of the most dangerous programming activities a little bit safer.
- Updating Linked SQL Server Views in Access When Changing the Underlying Table Data Types: (Mar 1, 2023) If you change the data type of a table field in SQL Server, follow these steps to be sure all related views are updated in Microsoft Access.
- Installing Multiple Versions of SQL Server Side-by-Side on a Development Machine: (Apr 11, 2023) Save resources by setting additional instances of SQL Server to Manual startup. Use Process Explorer to grant Start/Stop permissions for an individual service.
- B-BEAR: Quick and Dirty SQL Server Testing: (Apr 14, 2023) Begin, Before, Execute, After, Rollback. This technique makes testing your SQL Server statements a snap.
- How to Use the ADO NextRecordset Method: (May 3, 2024) The ADO .NextRecordset method allows you to handle multiple result sets from a single SQL Server stored procedure.
- Creating a Header Row in Excel from an ADO Recordset: (May 7, 2024) In this followup to my ADO .NextRecordset article, we explore how to create Excel column headers from recordset field names.
- Resolving SQL Server "Login Failed" Error for Recreated Active Directory Users: (Aug 16, 2024) When is the same person not the same person? Let's explore an unexpected fix for SQL Server 'Login Failed' errors when credentials seem correct.
- Using PRINT to Improve Safety of Live SQL Server Updates: (Oct 15, 2024) [Me]: Let's DELETE 5 records. [SSMS]: (7,393,253 rows affected) [Me]: {Updates LinkedIn profile: "#OPENTOWORK"} Avoid nasty SQL surprises with this easy technique.
Subforms
- ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
Subs vs. Functions
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
-
Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
-
Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
-
Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
-
How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
-
Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
-
Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
-
Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
-
Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
-
Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
-
Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- ["Subs vs. Functions" tag page]: Show all articles with the tag "Subs vs. Functions" (including those where "Subs vs. Functions" is a secondary tag).
- Subs vs. Functions in VBA: (Feb 7, 2023) What is the difference between a Sub and a Function and why would you use one or the other? I'll give you the short answer...and then we can explore the long answer.
- Why Use Subs at All?: (Feb 8, 2023) Almost every Sub could be a Function...but that doesn't mean it's a good idea.
- Every Function Has a Return Type: (Feb 9, 2023) Every Function in VBA has a return type even if you don't explicitly define one. In fact, there are *FOUR* different ways to declare function return types.
- How to Return Values from a Sub in VBA: (Feb 10, 2023) You can "return" values from a Sub via a parameter passed by reference. What does that look like and when should you use it? Let's explore.
- Event Handlers in Microsoft Access VBA: (Feb 13, 2023) You need event handlers to write event-driven code. This tutorial will help new users get up to speed and may even teach seasoned pros a thing or two.
- Calling VBA Functions from the Form or Report Property Sheet: (Feb 15, 2023) There are two basic ways to handle events in Microsoft Access: via {Event Procedure] Event Handlers (i.e., Subs) and Function calls from the Property Sheet.
- Using ByRef to Return Multiple Values from a Sub (or Function): (Feb 23, 2023) You can "return" multiple values from a VBA procedure by passing your arguments by reference.
- Returning Multiple Values from a Function in VBA Using a UDT: (Feb 24, 2023) You can return multiple values from a VBA procedure by using a simple User Defined Type (UDT). Though, some situations require a "complex" UDT.
- Every Function in VBA Returns a Value: (Mar 10, 2023) Whether you assign one explicitly or not, every function in VBA has a return value.
- Returning Values By Reference in Ribbon Callbacks: (Mar 17, 2023) To return a value from a ribbon callback, you need to pass the value back to the calling procedure using an argument that has been passed by reference.
Technical Debt
- ["Technical Debt" tag page]: Show all articles with the tag "Technical Debt" (including those where "Technical Debt" is a secondary tag).
-
Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
-
Old Fields Left in Place: (Jan 18, 2021) 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.
-
Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
-
Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
-
Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
-
Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
-
Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
TempVars
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
-
A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
-
TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
-
Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
-
Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
-
Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
-
tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
-
GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Old Code Left in Place: (Jan 17, 2021) What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
- Old Fields Left in Place: (Jan 18, 2021) 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.
- Denormalized Database Tables: (Jan 19, 2021) Normalize your database tables to avoid technical debt.
- Coding Before Designing: (Jan 20, 2021) Weeks of coding can save hours of planning.
- Overuse of Global State: (Jan 21, 2021) You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
- Overly Clever Code: (Jan 22, 2021) Keep It Simple, Stupid
- Storing Local Table Data in a Front-End Access Application: (Oct 26, 2021) If you're thinking about storing local data in your front-end Access application, make sure it follows these 4 ground rules.
- ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
- A Safer Way to Use TempVars: (Sep 20, 2022) The TempVars object is an intriguing alternative to traditional global variables, but it has some shortcomings. Here's one way to work around them.
- TV: The TempVars Class Module: (Sep 21, 2022) A TempVars class module that provides visibility, type safety, IntelliSense, and compile-time typo checks.
- Beware TempVars in Queries: (Sep 22, 2022) Many Access users rave about using TempVars with queries. I decided to see what the hype was about. What I found shocked me.
- Safely Using TempVars in Queries: (Sep 23, 2022) Calling TempVars directly from a query can cause issues. Instead, use this simple wrapper function to save yourself some potential headaches.
- Populating a List Box with the TempVars Collection: (Sep 27, 2022) If you use TempVars in your Microsoft Access applications, this handy function will bring visibility to the contents of that collection.
- tblTempVar: Creating and Populating a Table of TempVars: (Sep 28, 2022) These three simple procedures: (1) create, (2) populate, and (3) create/delete + populate a local table with the contents of the TempVars collection.
- GenerateTVClass(): Auto-Create a TempVars Class Module: (Oct 21, 2022) The culmination of my TempVars series, this article shows you how to generate a TempVars class module from a local table.
Testing
- ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
-
Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
-
VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
-
Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
-
Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
Text-To-Speech
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
-
Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Python-inspired Doc Tests in VBA: (Sep 21, 2020) Doc tests are not a replacement for unit or integration testing. But they do provide the best return on investment (ROI) of any type of test, mostly because the effort to write them is near zero.
- VBA Doc Tests: Advanced Features: (Sep 22, 2020) Let's take our doc tests to the next level. I'll show you how to use my custom DocTests function to test classes, private functions, and error conditions.
- Creating a Low-Privileged Local User for SQL Server Testing: (Mar 22, 2023) It can be difficult to test how an Access application with a SQL Server backend behaves for a low-privileged user. Creating such a user account is step one.
- Testing Non-Privileged Access to SQL Server During Development: (Mar 23, 2023) How to use the runas command and a local user account to test non-privileged access to SQL Server.
- ["Text-To-Speech" tag page]: Show all articles with the tag "Text-To-Speech" (including those where "Text-To-Speech" is a secondary tag).
- Reading Text Aloud in Microsoft Access: (Jan 7, 2022) Want a quick way to get started with Text-to-Speech in your VBA application? This 4-line method gets the job done and requires no references!
Throwback Thursday
- ["Throwback Thursday" tag page]: Show all articles with the tag "Throwback Thursday" (including those where "Throwback Thursday" 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.
Tools
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
-
My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
-
21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
-
No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
-
Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
-
vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
-
Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
-
Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
-
Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
-
KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
-
Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
-
AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
-
Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
-
Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
-
3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
-
RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
-
3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words.
Here are three tools that I use to make the process of taking screenshots as smooth as possible.
-
Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
-
Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
-
Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
-
Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
-
Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
-
Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
-
Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
-
3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
-
3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
-
Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
-
Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
-
Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
-
Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
-
AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
-
ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
-
Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
-
Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
-
Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
-
Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
-
Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
-
Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
-
How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
-
Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
-
PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
-
Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
-
Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
-
Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
-
Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
-
Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
-
DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
-
KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
-
Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
-
Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 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.
- ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).
- My Favorite Things: (Sep 24, 2020) Here is a list of my favorite utilities, add-ins, OCX controls, and applications that I use when developing Microsoft Access applications.
- 21st Century Visual Basic: (Dec 27, 2020) Microsoft stopped supporting VB6 in 2008. Here are some modern options for migrating those old apps or developing new ones in 2020 and beyond.
- No Longer Set: (Jan 9, 2021) Tools and techniques for creating installation packages for Access applications and automatically updating front-end program files.
- Bad Words in Access: (Jan 31, 2021) Note, Caption, Format, Pages, Sequence. All reasonable-sounding field names, but all should be avoided.
- vbWatchdog Webinar: (Feb 10, 2021) Peter Cole of ThemeMyDatabase.co.uk presents a demonstration of vbWatchdog in action. Come for the info, stay for the discount code.
- Everything You Need to Find Files: (Feb 12, 2021) Or, should I say, You Need *Everything* to Find Files.
- Hiding Shortcuts in Everything: (Feb 16, 2021) Here's a quick tip from Tom Wickerath for hiding shortcut files from your Everything file search results.
- Rainbow CSV: (Mar 30, 2021) If you work with delimited text files of any kind, you need to be using this VS Code extension.
- KnowledgeBase Mausoleum: (Mar 31, 2021) Looking for that long-lost KnowledgeBase article from 2003 but only finding a 404 error? This website brings dead KB articles back to life.
- Enable Live Transcription in MS Teams Meetings: (Apr 20, 2021) Is the "Start transcription" option missing from your Teams menu? Is the "Join" button missing from your calendar entry? Maybe I can help (but probably not).
- AccessUI - Data Source Manager: (May 21, 2021) Tired of dealing with the limitations and poor UI of Access's built-in linked table manager? Try this FREE improved version from Kevin Bell.
- Commento vs. Cove Comments: (Jun 21, 2021) Commento and Cove are both third-party comment hosting platforms. Which one works best with Ghost CMS?
- Customizing the VBA Debug Toolbar: (Jul 5, 2021) There are some very handy commands that VBA does not expose by default. Here's a step-by-step guide to customizing the Debug toolbar in VBA.
- 3 Ways to Run the Best Low-Level Windows Debugging Tool: (Jul 20, 2021) A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
- RegEx101.com: (Aug 2, 2021) Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
- 3 Tools to Take and Manage Screenshots: (Oct 16, 2021) A picture is worth a thousand words. Here are three tools that I use to make the process of taking screenshots as smooth as possible.
- Keybase: A Simple and Secure Way to Communicate: (Oct 27, 2021) Whenever I need to share sensitive information with my team--such as passwords or private keys--I use Keybase for peace of mind.
- Advanced Data Generator 4: First Look: (Dec 9, 2021) Looking to generate lots of test data in your backend Access databases? Advanced Data Generator 4 may be exactly what you are looking for.
- Application Environment Inheritance: (Jan 12, 2022) Understanding how applications inherit environment settings from one another can shed light on some otherwise puzzling situations.
- Setting a Common Path to Sharepoint Site Folders on Multiple Devices: (Jan 25, 2022) This quick tip will help you create consistent development environments across multiple devices and users.
- Creating a Shortcut to an Environment Variable Path: (Jan 27, 2022) If you rely on OneDrive or SharePoint to collaborate on files with your team, this tip will help you provide a uniform way to access data across all devices.
- Simple Fix for Missing DBF Support in Access 2013: (Jan 29, 2022) Quick fix installers that restore Access 2013 DBF support *PLUS* the techniques I used to build the installers using 7-Zip and Inno Setup.
- Using ProcMon to Troubleshoot Registry Calls: (Feb 10, 2022) Finding the correct registry keys for JetShowPlan and ODBC TraceSqlMode can be tricky. Let ProcMon take the guesswork out of the process.
- 3 Ways to Find Showplan.out: (Feb 11, 2022) Finding Jet ShowPlan's showplan.out file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
- 3 Ways to Find sqlout.txt: (Mar 2, 2022) Finding ODBC TraceSQLMode's sqlout.txt file can be deceptively difficult. Here are three approaches to make it easy. At least one is guaranteed to work.
- 3 Free Options for Managing Linked Tables in Access: (May 17, 2022) The original linked table manager was a terrible tool. Let's look at three better options for today's Microsoft Access developers.
- Changing Internet Explorer Options in IE Mode of Microsoft Edge: (Jul 19, 2022) Did you try to change Internet Explorer options from IE Mode in Edge only to realize that you can't get to them? Luckily, there's an easy workaround.
- Access Database Right-Click Context Menu Creator: (Jul 25, 2022) Wouldn't it be great to right-click an Access file to compact or decompile it? With Daniel Pineault's awesome tool, you can!
- Automatically Link to Your Bug Database from TortoiseHg: (Aug 17, 2022) Everyone's favorite Windows Mercurial software includes a killer feature that is criminally underused.
- Connecting to GitHub from TortoiseHg Using SSH Keys: (Aug 18, 2022) Step-by-step instructions to set up a completely seamless integration between TortoiseHg and GitHub. No passwords. No Pageant. No friction of any kind.
- AccessImagine: ActiveX Picture Control for Access: (Aug 24, 2022) If you are building an image-rich data application with Microsoft Access, you can save yourself a lot of development time with a third-party tool like AccessImagine.
- ActiveX Controls: Love 'Em or Hate 'Em?: (Aug 29, 2022) I always avoid ActiveX controls in my Access applications. Except when I can't. Or don't want to. It's complicated...
- Checking Version Compatibility with NetOffice: (Nov 1, 2022) Take advantage of the open-source NetOffice project on GitHub to look up version compatibility for the Access/Office/Word/Excel object models.
- Using FreeMind as a Schema Development Tool: (Dec 28, 2022) In the early stages of planning a database design, I prefer a tool that lets me capture my thoughts as they flow without getting in the way. FreeMind is that tool.
- Password Generator: (Mar 3, 2023) There are plenty of online password generator sites, but this one is my favorite.
- Simple Logging Framework for VBScript Files: (Mar 7, 2023) If you use VB Script files to automate recurring tasks, adding support for severity-based logging offers cheap insurance against future problems.
- Instantly "Copy" Huge Files Using Hard Links in Windows: (May 15, 2023) Hard links are a well-hidden feature of the Windows file system. Don't let Linux users have all the fun!
- Using Hard Links to Help Mimic a Client Network Environment: (Jun 8, 2023) Need to mimic data environments for multiple clients? Hate managing the resulting data sprawl? Hard links can help.
- How to Be Signed In To Multiple Organizations in the MS Teams Desktop App Simultaneously: (Aug 28, 2023) This trick allows you to run multiple instances of the Microsoft Teams desktop app with each instance signed in to a different organization.
- Setting Up a New MS Access Development Environment: (Sep 6, 2023) Five settings and two addins that vastly improve your quality of life as a Microsoft Access developer.
- PureText: Paste Unformatted Text From Your Clipboard: (Dec 8, 2023) Are you tired of the Notepad dance: Copy rich text, paste in Notepad, select all, copy, paste plain text? If so, this simple utility could be life-changing.
- Poe: My Tool of Choice for Exploring the World of LLMs: (Dec 19, 2023) With so many new and exciting LLMs and AI image generators, how do you pick just one? What if you didn't have to?
- Ditto: My Newest Favorite Micro-Productivity Tool: (Jan 16, 2024) "That's what she said."
- Unfamiliar Language? 10X Your Productivity by Combining the Old with the New: (Feb 12, 2024) Pairing this free AI tool with an old-school technique is the key to unlocking immediate productivity in unfamiliar programming languages.
- Customizing the VoidTools Everything File Search Utility with Custom Commands: (Feb 29, 2024) The latest insider version of the Everything search tool introduces a new killer feature.
- Installing TortoiseHg: Step-by-Step: (Mar 7, 2024) Step-by-step instructions for installing my preferred distributed version control system (DVCS) for Access developers looking to get started with version control.
- DokuWiki: A Versatile Tool for Developer and End-User Documentation: (Mar 27, 2024) DokuWiki is a one-stop-shop for developer and end-user documentation--with support for both online and offline use cases!
- KeePass: The Ideal Combination of Security and Convenience: (Mar 29, 2024) Applying lessons from XKCD, the Iraq war, and recent cyberattacks to choose the best tool to safeguard your sensitive data.
- Boost Efficiency by Documenting Recurring Processes in ProcessKit: (Apr 5, 2024) From invoicing to client onboarding, learn how documenting your processes in ProcessKit can save time and improve results.
- Dark Mode All the Things: (Sep 6, 2024) If exposure to excessive light will render your undead body a pile of ash--or you simply want to reduce eye strain--this app-by-app list of Dark Mode settings is just what you need.
twinBASIC
- ["twinBASIC" tag page]: Show all articles with the tag "twinBASIC" (including those where "twinBASIC" is a secondary tag).
-
The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
-
Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
-
Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
-
Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
-
Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
-
New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
-
New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
-
Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
-
New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
-
twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
-
Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
-
Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
-
twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
-
Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
-
DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
-
Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
-
twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
-
How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
-
HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
-
HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
-
HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
-
HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
-
twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
-
HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
-
HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
-
The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
-
Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
-
WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
-
Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
twinBASIC Weekly Update
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
-
twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
-
twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
-
twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
-
twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
-
twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
-
twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
-
twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
-
twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
-
twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
-
twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
-
twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
-
twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
-
twinBASIC Update: July 25, 2021: (Jul 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.
-
twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
-
twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
-
twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
-
twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
-
twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
-
twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
-
twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
-
twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
-
twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
-
twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
-
twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
-
twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
-
twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
-
twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
-
twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
-
twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
-
twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
-
twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
-
twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
-
twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
-
twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
-
twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
-
twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
-
twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
-
twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
-
twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
-
twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
-
twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
-
twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
-
twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
-
twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
-
twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
-
twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
-
twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
-
twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
-
twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
-
twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
-
twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
-
twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
-
twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
-
twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
-
twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
-
twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
-
twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
-
twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
-
twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
-
twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
-
twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
-
twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
-
twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
-
twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
-
twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
-
twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
-
twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
-
twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
-
twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
-
twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
-
twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
-
twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
-
twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
-
twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
-
twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
-
twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
-
twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
-
twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
-
twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
-
twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
-
twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
-
twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
-
twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
-
twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
-
twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
-
twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
-
twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
-
twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
-
twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
-
twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
-
twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
-
twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
-
twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
-
twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
-
twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
-
twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
-
twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
-
twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
-
twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
-
twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
-
twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
-
twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
-
twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
-
twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
-
twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
-
twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
-
twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
-
twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
-
twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
-
twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
-
twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
-
twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
-
twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
-
twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
-
twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
-
twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
-
twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
-
twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
-
twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
-
twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
-
twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
-
twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
-
twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
-
twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
-
twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
-
twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
-
twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
-
twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
-
twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
-
twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
-
twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
-
twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
-
twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
-
twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
-
twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
-
twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
-
twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
-
twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
-
twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
-
twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
-
twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
-
twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
-
twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
-
twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
-
twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
-
twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
-
twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
-
twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
-
twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
-
twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
-
twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
-
twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
-
twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
-
twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
-
twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
-
twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
-
twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
-
twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
-
twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
-
twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
-
twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
-
twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
-
twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
-
twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
-
twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
-
twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
-
twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
-
twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
-
twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
-
twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
-
twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
-
twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
-
twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
-
twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
-
twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
-
twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
-
twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
-
twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
-
twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
-
twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
-
twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
-
twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
-
twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
-
twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
-
twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
-
twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- The TwinBasic IDE: VS Code: (Apr 6, 2021) Many a fledgling programming language has died an early, quiet death at the hands of poor tooling. TwinBasic looks to avoid that fate with robust VS Code support.
- Writing Code in TwinBasic: Part 1: (Apr 7, 2021) Let's explore three features of the code writing experience in TwinBasic: IntelliSense, Go to definition, and Semantic Highlighting.
- Writing Code in TwinBasic: Part 2: (Apr 8, 2021) Let's explore three more features of the code writing experience in TwinBasic: Code folding, Inline parameter hints, and Outline view.
- Debugging Code in twinBASIC: (Apr 9, 2021) Experienced developers know that they spend more time debugging code than writing it. Luckily, twinBASIC has some capable debugging tools.
- Creating a twinBASIC ActiveX DLL: (Apr 10, 2021) Okay, twinBASIC. It's time to make yourself useful.
- New Syntax in twinBASIC: Part 1: (Apr 11, 2021) Let's cover some new syntax in twinBASIC, including "AndAlso/OrElse"; the ternary If() operator; and "Continue For" and its cousins.
- New Syntax in twinBASIC: Part 2: (Apr 12, 2021) Let's cover some more new syntax in twinBASIC, including parameterized class constructors, method overloading, and return syntax for functions.
- Docstrings in twinBASIC: (Apr 13, 2021) twinBASIC takes a page out of the RubberduckVBA book, using code comment "annotations" to generate real-time, IntelliSense-integrated documentation.
- New Syntax in twinBASIC: Part 3: (Apr 14, 2021) There's even more new syntax in twinBASIC, including the IsNot operator, initializing on declare, and augmented assignment operators.
- twinBASIC's 100% Compatibility Goal: (Apr 16, 2021) The difference between 100% compatible and 99% compatible is way more than 1%.
- Preview Limitations in twinBASIC: (Apr 17, 2021) CAUTION! twinBASIC is a work-in-progress. To avoid frustration, learn what's not working *before* you start playing with it.
- Generic Objects in twinBASIC: (Apr 18, 2021) twinBASIC supports generic objects! Let's dig into the details with a practical example.
- twinBASIC Runtime Requirements: (Apr 19, 2021) The title's a little misleading. SPOILER ALERT! There are no runtime requirements for twinBASIC.
- Multithreading in twinBASIC: (Apr 21, 2021) We may not have the syntax to write multi-threaded code yet, but that can't stop us from creating multiple threads in the twinBASIC Debug Console.
- DevCon 2021: (Apr 23, 2021) Links and resources from my talk today at Access DevCon Vienna 2021, twinBASIC: The New Kid on the Block.
- Pseudo-Command Line Args in twinBASIC: (May 22, 2021) I couldn't figure out how to pass command line arguments to a twinBASIC console application. So I improvised a solution.
- twinBASIC: Setting Cmd Line Args in Debug Mode: (May 24, 2021) The VB6 Command$() function returns command line arguments in twinBASIC. But, for now, we still need a workaround to set cmd line args while debugging.
- How to Use Version Control with twinBASIC: (Jun 24, 2021) You can now extract the embedded text files from .twinproj containers for use in version control. I wrote a batch file to make the process even easier.
- HOW TO: Create a Custom ActiveX Control with twinBASIC: (Apr 23, 2022) Did you ever wish you could build a custom control for Microsoft Access forms and reports? With twinBASIC, that's a 15-minute project.
- HOW TO: Create a Tool Window in the VBIDE with twinBASIC: (Apr 26, 2022) Move over Rubberduck VBA and MZ-Tools. The next great VBE addin is going to be built with twinBASIC. Here are step-by-step instructions to get you started.
- HOW TO: Creating an Office COM Add-in with twinBASIC: (Jun 13, 2022) Ever wish you could turn your VBA code into a COM add-in that would run in 32- AND 64-bit Office applications? It's easier than ever with twinBASIC.
- HOW TO: Creating a Standard (non-ActiveX) DLL with twinBASIC: (Jun 16, 2022) With twinBASIC, you no longer need C++ to build a standard DLL. Call high-performance code from VBA without needing the Windows registry.
- twinBASIC Weekly Updates: (Jul 18, 2022) The twinBASIC weekly updates now have their own dedicated tag on nolongerset.com, making it easier to find the other twinBASIC articles.
- HOW TO: Install twinBASIC: (Aug 11, 2022) The latest step-by-step instructions for installing twinBASIC (aka, Visual Basic 8).
- HOW TO: Handle Excel Events in a twinBASIC COM Addin: (Aug 23, 2022) You can now use twinBASIC to create a COM add-in for Excel that handles Excel Application events like NewWorkbook and WorkbookOpen.
- The twinBASIC Family Tree: (Aug 22, 2023) VB6 and twinBASIC are "twins". You know, just like Arnold Schwarzenegger and Danny DeVito are twins.
- Version Control with twinBASIC in 2024: (Apr 10, 2024) Step-by-step instructions for integrating version control into your twinBASIC development operations in 2024.
- WinDevLib: A Better Way to Call Windows API Functions in twinBASIC: (Apr 16, 2024) Stop struggling to declare your Windows API calls in twinBASIC. Use the Windows Development Library twinPACK and let fafalone do all the hard work for you.
- Building PhotoDemon with twinBASIC: (Nov 17, 2024) PhotoDemon is one of the most complex VB6 open-source projects still actively maintained. And you can build it yourself in about 10 minutes with twinBASIC.
- ["twinBASIC Weekly Update" tag page]: Show all articles with the tag "twinBASIC Weekly Update" (including those where "twinBASIC Weekly Update" is a secondary tag).
- twinBASIC Update: May 2, 2021: (May 2, 2021) Highlights include C-style block comments, support for additional Rubberduck annotations, and With blocks for UDTs.
- twinBASIC Update: May 9, 2021: (May 9, 2021) Highlights include support for a new Attribute syntax, ActiveX DLL registration via regsvr32, and PredeclaredID for twinBASIC classes.
- twinBASIC Update: May 16, 2021: (May 16, 2021) Highlights include stability improvements for the twinBASIC compiler and the YouTube release of my hourlong twinBASIC presentation at DevCon Vienna.
- twinBASIC Update: May 23, 2021: (May 23, 2021) Highlights include passing (pseudo-)command-line arguments to a twinBASIC console app and an update from Wayne on the project's progress.
- twinBASIC Update: May 30, 2021: (May 30, 2021) Highlights include improved compiler stability, making the Optional keyword optional, and setting command-line arguments for debugging.
- twinBASIC Update: June 6, 2021: (Jun 6, 2021) Highlights include Mid statement support, DefType support, multiple bug fixes, and a (sort of) announcement regarding unit testing support.
- twinBASIC Update: June 13, 2021: (Jun 13, 2021) Highlights include Like statement support and a new VS Code command to create new project files (no more downloading .zip files from twinbasic.com!).
- twinBASIC Update: June 20, 2021: (Jun 20, 2021) Highlights include custom events in twinBASIC classes, full Debug.Print syntax support, and an experimental code prettifier.
- twinBASIC Update: June 27, 2021: (Jun 27, 2021) Highlights include support for external version control, the official launch of the code prettifier, and support for resources and visual styles via manifest files.
- twinBASIC Update: July 4, 2021: (Jul 4, 2021) Highlights include support for EXE/DLL embedded resources plus *LOTS* of code writing experience improvements, like rename refactoring, auto-indent, etc.
- twinBASIC Update: July 11, 2021: (Jul 11, 2021) Highlights include a sneak peek at the yet-to-be-released form editor, a teaser about possible control inheritance, and a future option for version control.
- twinBASIC Update: July 18, 2021: (Jul 18, 2021) Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
- twinBASIC Update: July 25, 2021: (Jul 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.
- twinBASIC Update: August 1, 2021: (Aug 1, 2021) Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
- twinBASIC Update: August 8, 2021: (Aug 8, 2021) Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
- twinBASIC Update: August 15, 2021: (Aug 15, 2021) Highlights include IntelliSense improvements, a 12-month twinBASIC roadmap, and a pure Win32 API GUI application written in twinBASIC.
- twinBASIC Update: August 22, 2021: (Aug 22, 2021) Highlights include a sneak-peek at the forthcoming integrated unit testing framework, App.ThreadID, App.hInstance, and MSVBVM60.dll redirections.
- twinBASIC Update: August 29, 2021: (Aug 29, 2021) Highlights include Unit Testing support, conditional breakpoints, the Nz() function, and various IntelliSense improvements.
- twinBASIC Update: September 5, 2021: (Sep 5, 2021) Highlights include IntelliSense in the Debug Console, unit testing improvements, and the addition of #Error and #Warning directives.
- twinBASIC Update: September 12, 2021: (Sep 12, 2021) Highlights include VS Code Extensibility, RGB extraction functions, dropping Finalize(), and a discussion regarding potential typedef support.
- twinBASIC Update: September 19, 2021: (Sep 19, 2021) Highlights include discussions around block scoping and a planned ObjRefCount() function.
- twinBASIC Update: September 26, 2021: (Sep 26, 2021) Highlights include a sneak peek at building custom form controls, the related dynamic property sheet, and a bunch of screenshots teasing the upcoming features.
- twinBASIC Update: October 3, 2021: (Oct 3, 2021) Highlights include a glimpse into the possible GUI release timeline and a discussion about data binding with twinBASIC forms.
- twinBASIC Update: October 10, 2021: (Oct 10, 2021) Highlights include an extended preview of the yet-to-be-released form designer and a spirited discussion about whether to fork VS Code to create a dedicated tB IDE.
- twinBASIC Update: October 17, 2021: (Oct 17, 2021) Highlights include the alpha release of CustomControls, a twinBASIC wiki, and a revived discussion around "Quirks Mode" in twinBASIC.
- twinBASIC Update: October 24, 2021: (Oct 24, 2021) Highlights include the addition of 4 new custom control events, ElementTabStop/Index properties, and a Spanish presentation on twinBASIC.
- twinBASIC Update: October 31, 2021: (Oct 31, 2021) Highlights include initial support for a Clipboard object, a new custom control sample (Wayne's TextBox), and support for Return as an alias for Exit Sub.
- twinBASIC Update: November 7, 2021: (Nov 7, 2021) Highlights include our first look at a working twinBASIC form, the early makings of inheritance support, and the promise of custom ActiveX control development.
- twinBASIC Update: November 14, 2021: (Nov 14, 2021) Highlights include temporary removal of the license key requirement for CustomControls and partial inheritance support using Implements ... Via.
- twinBASIC Update: November 21, 2021: (Nov 21, 2021) Highlights include 64-bit compilation support (no license required!) and a discussion about early binding and reference handling.
- twinBASIC Update: November 28, 2021: (Nov 28, 2021) Highlights include the first major release of file handling statements and functions in twinBASIC, along with talk of providing a tB license to the Rubberduck project.
- twinBASIC Update: December 5, 2021: (Dec 5, 2021) Highlights include the implementation of additional File System features, improved performance for Split and Replace, and a discussion about universal binaries.
- twinBASIC Update: December 12, 2021: (Dec 12, 2021) Highlights include the File I/O system reaching feature-complete status, an updated twinBASIC roadmap, and experimental text encoding support.
- twinBASIC Update: December 19, 2021: (Dec 19, 2021) Highlights include support for importing VB6 project files (*.vbp), new MsgBox options, and a spirited discussion about what tB's design priorities should be.
- twinBASIC Update: December 26, 2021: (Dec 26, 2021) Highlights include several improvements to the COM references list, a fix for the hidden dialog windows issue, and many discussions about possible tB features.
- twinBASIC Update: January 2, 2022: (Jan 2, 2022) Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
- twinBASIC Update: January 9, 2022: (Jan 9, 2022) Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
- twinBASIC Update: January 16, 2022: (Jan 16, 2022) Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
- twinBASIC Update: January 23, 2022: (Jan 23, 2022) Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
- twinBASIC Update: January 30, 2022: (Jan 30, 2022) Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
- twinBASIC Update: February 6, 2022: (Feb 6, 2022) Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
- twinBASIC Update: February 13, 2022: (Feb 13, 2022) Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
- twinBASIC Update: February 20, 2022: (Feb 20, 2022) Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
- twinBASIC Update: February 27, 2022: (Feb 27, 2022) Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
- twinBASIC Update: March 6, 2022: (Mar 6, 2022) Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
- twinBASIC Update: March 13, 2022: (Mar 13, 2022) Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
- twinBASIC Update: March 20, 2022: (Mar 20, 2022) Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
- twinBASIC Update: March 27, 2022: (Mar 27, 2022) Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
- twinBASIC Update: April 3, 2022: (Apr 3, 2022) Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
- twinBASIC Update: April 10, 2022: (Apr 10, 2022) Highlights include 7 (!) new releases of the twinBASIC IDE and twinBASIC solving a difficult problem for a popular MS Access open-source addin.
- twinBASIC Update: April 16, 2022: (Apr 16, 2022) Highlights include multiple debug console performance improvements and a workaround for antivirus software flagging twinBASIC as potential malware.
- twinBASIC Update: April 24, 2022: (Apr 24, 2022) Highlights include updated samples for building custom VBIDE tool windows and custom ActiveX controls that you can drop on Access forms and reports.
- twinBASIC Update: May 1, 2022: (May 1, 2022) Highlights include Set Next Statement support, new code samples and templates, a roadmap update, and a 7-Zip VBA library written in twinBASIC.
- twinBASIC Update: May 8, 2022: (May 8, 2022) Highlights include version control-friendly improvements to the new IDE, an IDE Font Size setting, and a milestone for another VBx successor language, RAD Basic.
- twinBASIC Update: May 15, 2022: (May 15, 2022) Highlights include a modern browser control for Microsoft Access (yes, you read that right) and a spirited discussion regarding attribute syntax.
- twinBASIC Update: May 22, 2022: (May 22, 2022) Highlights include the beginnings of a Screen object, an updated Attribute syntax, and a reimagined ending to a Disney classic (yes, it's a bit off-topic).
- twinBASIC Update: May 29, 2022: (May 29, 2022) Highlights include new build features, a good Exit Code discussion, and a multi-threaded twinBASIC proof of concept from Ben Clothier.
- twinBASIC Update: June 5, 2022: (Jun 5, 2022) Includes a sneak peek of the upcoming ActiveX Control Extender support in twinBASIC.
- twinBASIC Update: June 12, 2022: (Jun 12, 2022) Highlights include ActiveX control support on twinBASIC forms and a discussion about the (accidental?) interface constructor language feature.
- twinBASIC Update: June 19, 2022: (Jun 19, 2022) Highlights include improved support for 3rd-party ActiveX controls, a new location for tB IDE releases, and a discussion about where to put non-visual controls.
- twinBASIC Update: June 26, 2022: (Jun 26, 2022) Highlights include container support, IDE bug fixes, and a modest request for a complete backward-compatible rewrite of MS Access in twinBASIC.
- twinBASIC Update: July 3, 2022: (Jul 3, 2022) Highlights include added support for the VB6 `End` statement, shape controls, and double-click to change property values in the IDE.
- twinBASIC Update: July 10, 2022: (Jul 10, 2022) Highlights include new shape controls, code-signed twinBASIC IDE and compiler executables, and twinBASIC's first appearance on HackerNews.
- twinBASIC Update: July 17, 2022: (Jul 17, 2022) Highlights include double-click to change form/control properties in the IDE, support for the Form.Show Modal argument, and a discussion about On Error Resume Next.
- twinBASIC Update: July 24, 2022: (Jul 24, 2022) Highlights include implementation of the form Controls collection, initial publication of the twinBASIC Guiding Principles, and the potential to write device drivers with tB.
- twinBASIC Update: July 31, 2022: (Jul 31, 2022) Highlights include improved support for building device drivers, initial support for keyboard menu navigation, and a milestone for the twinBASIC project.
- twinBASIC Update: August 7, 2022: (Aug 7, 2022) Highlights include a major compiler refactor to help reduce compiler memory usage and proposed support for multiple built-in rounding methods.
- twinBASIC Update: August 14, 2022: (Aug 14, 2022) Highlights include IDE memory optimizations, build size reductions, and a discussion about a potential extensibility library for the IDE.
- twinBASIC Update: August 21, 2022: (Aug 21, 2022) Highlights include IDE improvements, support for Excel events in COM addins, and a kernel-mode driver written in twinBASIC (yes, really).
- twinBASIC Update: August 28, 2022: (Aug 28, 2022) Highlights include improvements to code selector boxes in the IDE, IntelliSense improvements, and better support for "kernel mode" (i.e., device drivers).
- twinBASIC Update: September 4, 2022: (Sep 4, 2022) Highlights include new IDE shortcut keys, an awesome new IDE History panel, and a project from fafalone that showcases twinBASIC's interface definition feature.
- twinBASIC Update: September 11, 2022: (Sep 11, 2022) Highlights include 4 new form controls (TreeView, DriveListBox, DirListBox, FileListBox), an impromptu Q&A with Wayne, and WinNativeForms source.
- twinBASIC Update: September 18, 2022: (Sep 18, 2022) Highlights include the initial implementation of a PictureBox control and a custom Windows Event Viewer written in twinBASIC.
- twinBASIC Update: September 25, 2022: (Sep 25, 2022) Highlights include long-awaited VB6 form import support (experimental) and a community-led GitHub project to provide official documentation for twinBASIC.
- twinBASIC Update: October 2, 2022: (Oct 2, 2022) Highlights include a pile of new form and control properties, a form menu designer, visual tab stop indicators in design view, and a new twinBASIC LinkedIn group.
- twinBASIC Update: October 9, 2022: (Oct 9, 2022) Highlights include support for control and menu arrays, a Type Library Viewer (Object Browser equivalent), and a video interview with twinBASIC creator Wayne Phillips.
- twinBASIC Update: October 16, 2022: (Oct 16, 2022) Highlights include two new ways to open the twinBASIC IDE (via .twinproj files and Windows shortcuts), better performance for IDE panels, and more GUI progress.
- twinBASIC Update: October 23, 2022: (Oct 23, 2022) Highlights include many IDE improvements, better support for high-performance code, and a sample Task Dialog project from fafalone.
- twinBASIC Update: October 30, 2022: (Oct 30, 2022) Highlights include better PNG handling, improvements to the custom menu builder, and support for a NumbersOnly textbox property.
- twinBASIC Update: November 6, 2022: (Nov 6, 2022) Highlights include native CoClass support and a TWINPACK package from fafalone with definitions for all the standard common controls.
- twinBASIC Update: November 13, 2022: (Nov 13, 2022) Highlights include drag and drop support, an innovative IDE feature known as "Type Hints", and a proof-of-concept twinBASIC multithreading project.
- twinBASIC Update: November 20, 2022: (Nov 20, 2022) Highlights include several bug fixes, a new method to clear the debug console, and a discussion about the difference between Drag and OLEDrag methods.
- twinBASIC Update: November 27, 2022: (Nov 27, 2022) Highlights include support for graphical buttons, OLE drag and drop, and some exciting news about the upcoming release of Rubberduck VBA 3.0.
- twinBASIC Update: December 4, 2022: (Dec 4, 2022) Highlights include initial support for importing VB6 forms with ActiveX controls, GoSub syntax support, and context-sensitive custom help support.
- twinBASIC Update: December 11, 2022: (Dec 11, 2022) Updates include a version 1 release date, twinBASIC roadmap update, and several bug fixes.
- twinBASIC Update: December 18, 2022: (Dec 18, 2022) Highlights include initial support for user controls, a new list view option for the form designer toolbox, and another sample twinBASIC project from fafalone.
- twinBASIC Update: December 26, 2022: (Dec 26, 2022) Highlights include the smallest bug report in twinBASIC history, a repository of twinBASIC sample projects, and a tB-based VBA DocTest runner from Ben Clothier.
- twinBASIC Update: January 1, 2023: (Jan 1, 2023) Highlights include a redesigned form preview button, a file watcher sample application from fafalone, and a holiday message from Wayne Phillips.
- twinBASIC Update: January 8, 2023: (Jan 8, 2023) Highlights include .vbp UserControl import support, a twinBASIC VBCCR demo project, live variable hover tips in the IDE, and a discussion of post-v1 breaking changes.
- twinBASIC Update: January 15, 2023: (Jan 15, 2023) Highlights include a new VBCCR-based GUI project type, a VBCCR TWINSERV package, and a discussion about support for block-level scope in twinBASIC.
- twinBASIC Update: January 29, 2023: (Jan 29, 2023) Highlights include an updated roadmap and v1 release date, new UserControl events support, and several new tB sample projects from fafalone and Ben Clothier.
- twinBASIC Update: February 5, 2023: (Feb 5, 2023) Highlights include a major rewrite of the ActiveX implementation, updates to two community projects, and a discussion about the business side of twinBASIC.
- twinBASIC Update: February 12, 2023: (Feb 12, 2023) Highlights include an improved UX for selecting one control from a group of controls, an update to the ActiveX Control project type, and some IID advice.
- twinBASIC Update: February 19, 2023: (Feb 19, 2023) Highlights include an option to customize fonts in the IDE, newly implemented OLE Drag/Drop methods and events, and a new vbNullPtr constant.
- twinBASIC Update: February 26, 2023: (Feb 26, 2023) Highlights include a big announcement for twinBASIC in the world of Access and the release of ZoneStripper, another of fafalone's VB6 twinBASIC ports.
- twinBASIC Update: March 5, 2023: (Mar 5, 2023) Highlights include the addition of MonthView and DatePicker controls, new methods, properties, and events, and a note about the twinBASIC splash screen.
- twinBASIC Update: March 12, 2023: (Mar 12, 2023) Highlights include IDE bookmarks, improvements to the debugging experience, and a sampling of how twinBASIC is being used today.
- twinBASIC Update: March 19, 2023: (Mar 19, 2023) Highlights include a compilation of 60 of twinBASIC's existing improvements over VB6, mouse scroll events, a Last Position feature, and other IDE improvements,
- twinBASIC Update: March 26, 2023: (Mar 26, 2023) Highlights include a New Project settings dialog and a screenshot of a sample twinBASIC project showing its existing capabilities.
- twinBASIC Update: April 2, 2023: (Apr 2, 2023) Highlights include an experimental ListView control, read-only JSON view for tbform and tbcontrol files, and a mention of twinBASIC in The Register.
- twinBASIC Update: April 10, 2023: (Apr 10, 2023) Highlights include the addition of SendKeys support, CDecl support for certain types of API callbacks, and a vigorous discussion about possible tB namespace support.
- twinBASIC Update: April 16, 2023: (Apr 16, 2023) Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in slant.co's list of "best BASIC-like programming languages."
- twinBASIC Update: April 23, 2023: (Apr 23, 2023) Highlights include a status update from Wayne Phillips, extended discussion of twinBASIC on two web forums, and updates to fafalone's ucExplorer control.
- twinBASIC Update: April 30, 2023: (Apr 30, 2023) Highlights include twinBASIC's annual DevCon Vienna appearance and fafalone's ucExplorer control running in 64-bit MS Access.
- twinBASIC Update: May 7, 2023: (May 7, 2023) Highlights include a new Access library from Ben Clothier built with twinBASIC, a project status update from Wayne, and a couple of tB mentions in Reddit.
- twinBASIC Update: May 14, 2023: (May 14, 2023) Highlights include the return of regular twinBASIC releases, the twinBASIC Update video from Access DevCon Vienna, and multiple tB appearances on Hacker News.
- twinBASIC Update: May 21, 2023: (May 21, 2023) Highlights include a twinBASIC port of the classic Lemmings PC game, the potential sale of Wayne's MDE conversion service, and a mention in the 8bitnews Newsletter.
- twinBASIC Update: May 28, 2023: (May 28, 2023) Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
- twinBASIC Update: June 4, 2023: (Jun 4, 2023) Highlights include a search option to match whole words only, some handy ways to generate GUIDs, and a clever way to deploy and register custom ActiveX controls.
- twinBASIC Update: June 11, 2023: (Jun 11, 2023) Highlights include a new target release date for version 1, an accompanying roadmap update, and support for Control Arrays.
- twinBASIC Update: June 18, 2023: (Jun 18, 2023) Highlights include bug fixes related to timer events, argument/property handling, and IntelliSense, plus a screenshot of a simple browser written in twinBASIC.
- twinBASIC Update: June 25, 2023: (Jun 25, 2023) Highlights include experimental data-binding support, a new Q&A channel in the twinBASIC Discord server, and coming 64-bit support for Kr00l's VBFlexGrid control.
- twinBASIC Update: July 2, 2023: (Jul 2, 2023) Highlights include support for vbaObjAddRef, improvements to the Problems pane, and twinBASIC moving up the BASIC-like language rankings.
- twinBASIC Update: July 9, 2023: (Jul 9, 2023) Highlights include a supercharged Collection class (that also replaces Scripting.Dictionary for most use cases) and several exciting community projects.
- twinBASIC Update: July 16, 2023: (Jul 16, 2023) Highlights include twinPACK publisher support in the new IDE, indenting of pasted code, inline code hints, and the release of a 64-bit tB version of Kr00l's FlexGrid control.
- twinBASIC Update: July 23, 2023: (Jul 23, 2023) Highlights include an update on Wayne's LLVM progress and a demonstration of how to integrate the Windows Ribbon Framework into twinBASIC.
- twinBASIC Update: July 30, 2023: (Jul 30, 2023) Highlights include experimental code optimization via LLVM (boosting performance and reducing executable size) and a new Discord LLVM channel.
- twinBASIC Update: August 6, 2023: (Aug 6, 2023) Highlights include a big boost to IntelliSense performance, a "Paste Code as Comment" shortcut key, and discussion around inline assembly support.
- twinBASIC Update: August 13, 2023: (Aug 13, 2023) Highlights include brand new add-in support for the twinBASIC IDE, plus a short Q&A about setting an application icon in twinBASIC.
- twinBASIC Update: August 20, 2023: (Aug 20, 2023) Highlights include support for embedding Monaco editors and Chart.js in IDE tool windows, plus the tB port of a C++ 3D image rendering sample project.
- twinBASIC Update: August 27, 2023: (Aug 27, 2023) Highlights include multiple improvements to the debug console, including performance improvements that affect the entire IDE.
- twinBASIC Update: September 3, 2023: (Sep 3, 2023) Highlights include two new twinBASIC IDE Addin samples, a Property Sheet demo project from fafalone, and a brief discussion of DPI scaling.
- twinBASIC Update: September 10, 2023: (Sep 10, 2023) Highlights include a global search IDE addin sample, addin extensibility access to the filesystem, and a discussion about inheritance in twinBASIC.
- twinBASIC Update: September 17, 2023: (Sep 17, 2023) Highlights include inline editor widget support for tB IDE addins, a sample TODO addin, keyboard shortcut registration, and a preview of a UserControl Builder addin.
- twinBASIC Update: September 24, 2023: (Sep 24, 2023) Highlights include a twinBASIC services status bar, a tB implementation of the Geometrize software, and a user activity monitoring class from fafalone.
- twinBASIC Update: October 1, 2023: (Oct 1, 2023) Highlights include the release of the first community-built twinBASIC IDE Add-in and an update to fafalone's cTaskDialog project to add 64-bit VBA support.
- twinBASIC Update: October 8, 2023: (Oct 8, 2023) Highlights include debug-time evaluation of expressions on mouse hover and an x64-compatible version of sokinkeso's tB IDE addin, Usercontrol Builder.
- twinBASIC Update: October 15, 2023: (Oct 15, 2023) Highlights include a new TextHint property for text boxes, an easier way to apply license keys, and updates to the official twinBASIC wiki documentation.
- twinBASIC Update: October 22, 2023: (Oct 22, 2023) Highlights include experimental vbWatchdog support, a CheckBitness utility from fafalone, and a VB6 OSInfo class ported to twinBASIC.
- twinBASIC Update: October 29, 2023: (Oct 29, 2023) Highlights include two new methods for tB IDE Add-in development and an upcoming rewrite of the standard library implementation.
- twinBASIC Update: November 5, 2023: (Nov 5, 2023) Highlights include a major overhaul of twinBASIC's internals, support for "destructuring assignment", and a VBA UserForm to tB converter.
- twinBASIC Update: November 12, 2023: (Nov 12, 2023) Highlights include more VB6-like IntelliSense added to the debug console, upcoming help improvements, and a twinBASIC follower milestone.
- twinBASIC Update: November 19, 2023: (Nov 19, 2023) Highlights include an overhaul of the IntelliSense system, a project to get full paths of all running processes, and a new Kernel Mode Support Package.
- twinBASIC Update: November 26, 2023: (Nov 26, 2023) Highlights include foundational work on the forthcoming Edit & Continue feature and a new wiki page documenting the twinBASIC compiler constants.
- twinBASIC Update: December 3, 2023: (Dec 3, 2023) Highlights include an update on "Edit & Continue" development progress, a new Auto-Save tB add-in, and the discovery of twinBASIC's potential downfall.
- twinBASIC Update: December 10, 2023: (Dec 10, 2023) Highlights include an extended discussion on the possibility of open-sourcing some or all of twinBASIC in the future, plus a Linebreak Repair utility from fafalone.
- twinBASIC Update: December 17, 2023: (Dec 17, 2023) Highlights include a new twinBASIC project to allow easy input filtering of text boxes and the renaming of the tbShellLib project to reflect its expanded scope.
- twinBASIC Update: December 24, 2023: (Dec 24, 2023) Highlights include an updated twinBASIC roadmap, a sneak peek at upcoming IDE menu and docking improvements, and RadioMan - a new tB project from fafalone.
- twinBASIC Update: December 31, 2023: (Dec 31, 2023) A quiet week of development with a fascinating conversation on Wayne's decision to write a custom compiler rather than transpile twinBASIC into C/C++.
- twinBASIC Update: January 14, 2024: (Jan 14, 2024) Highlights include a dedicated twinBASIC forum at VBForums, new teaser images from this Friday's upcoming beta release, and several projects from fafalone.
- twinBASIC Update: January 21, 2024: (Jan 21, 2024) Highlights include a minor delay of the long-awaited twinBASIC IDE update, a new twinBASIC FAQ page, and several new and updated tB projects from fafalone.
- twinBASIC Update: January 28, 2024: (Jan 28, 2024) Highlights include ... ah, never mind. The new twinBASIC IDE is here!!!! Plus: static linking, experimental type inference, 20-30% reductions in exe sizes, and more!
- twinBASIC Update: February 4, 2024: (Feb 4, 2024) Highlights include two newly commissioned features (BigNumber support and a web page IDE panel) and a tB IDE comment/uncomment add-in.
- twinBASIC Update: February 11, 2024: (Feb 11, 2024) Highlights include the option to restore a traditional title bar to the twinBASIC IDE, a new lifetime license offer, and a lively discussion about attribute syntax.
- twinBASIC Update: February 18, 2024: (Feb 18, 2024) Highlights include progress on the IDE memory leaks, object models for automating Excel's Solver, and discussion regarding a taskbar icon monitor issue.
- twinBASIC Update: February 25, 2024: (Feb 25, 2024) Highlights include reduced IDE memory consumption, two new projects from fafalone, and jpbro's clever solution to the biggest twinBASIC dev bottleneck.
- twinBASIC Update: March 3, 2024: (Mar 3, 2024) Highlights include rebranding the Problems panel as "Diagnostics" with expanded functionality, placeholders for the Description attribute, and tB v1 blockers.
- twinBASIC Update: March 10, 2024: (Mar 10, 2024) Highlights include a new Trace Mode debugging feature, improved IntelliSense performance, and details of my upcoming twinBASIC presentation at Access DevCon.
- twinBASIC Update: March 17, 2024: (Mar 17, 2024) Highlights include independent TypeLibrary versioning and a detailed explanation of the new Runtime Tracing feature.
- twinBASIC Update: March 24, 2024: (Mar 24, 2024) Highlights include the return of support for twinBASIC IDE Add-ins, global search in the IDE, two new projects from fafalone, and an eye-opening twinBASIC poll.
- twinBASIC Update: April 1, 2024: (Apr 1, 2024) Highlights include dozens of bug fixes, a new MsgBox builder IDE addin, and a GitHub project for automatically setting PE image header properties.
- twinBASIC Update: April 7, 2024: (Apr 7, 2024) Highlights include the ability to embed code in tB IDE keyboard shortcuts, a consolidated page of sokinkeso's tB IDE addins, and a new App object package.
- twinBASIC Update: April 14, 2024: (Apr 14, 2024) Highlights include improved performance and stability, error codes for compile errors, a sneak peek at sokinkeso's External Tools plugin, and version control for twinBASIC.
- twinBASIC Update: April 21, 2024: (Apr 21, 2024) Highlights include word wrap toggling, twinBASIC returns to Vienna, a WinDevLib quick start guide, and a major milestone as twinBASIC now runs PhotoDemon!
- twinBASIC Update: April 29, 2024: (Apr 29, 2024) Highlights include my DevCon Vienna twinBASIC recording, massive memory reduction in the IDE, and exciting news regarding the VB6 PhotoDemon project.
- twinBASIC Update: May 6, 2024: (May 6, 2024) Highlights include support for the [NonBrowsable] attribute for ActiveX controls and discussions on Implements Via and ByVal/ByRef for tB vs. VB6 events.
- twinBASIC Update: May 13, 2024: (May 13, 2024) Highlights include reduced RAM usage by the compiler and an update to fafalone's Drag & Drop Demo project.
- twinBASIC Update: May 20, 2024: (May 20, 2024) Highlights include the long-awaited arrival of MDI forms, OS targeting, an animated GIF project, and the first commercially available project built with twinBASIC.
- twinBASIC Update: May 29, 2024: (May 29, 2024) Highlights include a new ImageList control, Opacity and TransparencyKey properties, and a new Sample Project demonstrating these added features.
- twinBASIC Update: June 5, 2024: (Jun 5, 2024) Highlights include a new experimental Project Explorer IDE panel, a proposal for "Unsafe" block syntax, and tB-compatible sample code for getting the external IP.
- twinBASIC Update: June 17, 2024: (Jun 17, 2024) Highlights include a twinBASIC for Applications proof of concept (🤯), a new Tab Order IDE addin, and a Memory List Manager sample project.
- twinBASIC Update: June 24, 2024: (Jun 24, 2024) Highlights include a new multi-line caption-editing dialog, implementation of several missing VB6 control properties, and advanced pointer handling via CType(Of ).
- twinBASIC Update: July 3, 2024: (Jul 3, 2024) Highlights include initial Printer object support, a new PDF Merge utility from fafalone, and an answer to one redditor's burning question.
- twinBASIC Update: July 8, 2024: (Jul 8, 2024) Highlights include a sneak preview of a coming report writer, plus support for accessing the Printers collection by printer name.
- twinBASIC Update: July 15, 2024: (Jul 15, 2024) Highlights include another week of progress on the upcoming report writer, including another sneak peek video of the feature.
- twinBASIC Update: July 22, 2024: (Jul 22, 2024) Highlights include two blockbuster features that Access developers will instantly recognize: an Access-style report writer and a lightweight expression service.
- twinBASIC Update: July 29, 2024: (Jul 29, 2024) Highlights include in-place editing of label captions and a mini toolbar for quick formatting of font properties for form and report controls.
- twinBASIC Update: August 5, 2024: (Aug 5, 2024) Highlights include improved array features (better non-Variant support, compile-time type checking, and assignment syntax) and a command line arg handling discussion.
- twinBASIC Update: August 13, 2024: (Aug 13, 2024) Highlights include predefined caption/text when adding controls, a progress update on form control implementation, and how to set the icon for your tB apps.
- twinBASIC Update: August 19, 2024: (Aug 19, 2024) Highlights include...a periodic reminder that the twinBASIC project typically keeps an insane release frequency.
- twinBASIC Update: August 25, 2024: (Aug 25, 2024) Highlights include a couple of teasers regarding forthcoming twinBASIC releases, a possible VIP "Silver" package, and bug fixes for fafalone's WinDevLib twinPACK.
- twinBASIC Update: September 2, 2024: (Sep 2, 2024) Highlights include bated breath, cautious optimism, sayings of sooth, and pithily proffered prognostications.
- twinBASIC Update: September 8, 2024: (Sep 8, 2024) Highlights include new releases focused on improved performance and VB6/VBA compatibility, along with Microsoft's latest attack on its own tech stack.
- twinBASIC Update: September 16, 2024: (Sep 16, 2024) Highlights include support for the .Image property on Form/PictureBox/MDIForm objects, two new static analysis warnings, and inline assembly language support.
- twinBASIC Update: September 23, 2024: (Sep 23, 2024) Highlights include big plans for the future of UDTs in twinBASIC and an in-person presentation on twinBASIC at Oxford University in England.
- twinBASIC Update: September 30, 2024: (Sep 30, 2024) Highlights include an updated 12-month roadmap, initial delegate support, improvements to AddressOf, and a facelift for twinbasic.com.
- twinBASIC Update: October 7, 2024: (Oct 7, 2024) Highlights include a SQLite COM wrapper twinPACK from Krool, tB documentation updates, a WinDevLib bug fix release, and Got/Lost Focus behavior fixes.
- twinBASIC Update: October 14, 2024: (Oct 14, 2024) Highlights include a 64-bit Quick Rename Shell Extension project from fafalone and perpetual licenses offered to longtime early subscribers.
- twinBASIC Update: October 22, 2024: (Oct 22, 2024) Highlights include a new tB-based Magnifier Windows utility from fafalone, a project status update from Wayne, and a metaphor involving rubber ducks, hippos, and oxpeckers.
- twinBASIC Update: October 29, 2024: (Oct 29, 2024) Highlights include more info on my upcoming visit to Oxford University to present the latest twinBASIC developments, including twinBASIC for Applications (tBA).
- twinBASIC Update: November 5, 2024: (Nov 5, 2024) Highlights include a twinBASIC-built utility to strip the Mark of the Web (MOTW) from files and an upcoming feature to check packages for updates.
- twinBASIC Update: November 12, 2024: (Nov 12, 2024) Highlights include a video player sample project from fafalone, a trick for exporting .tlb files from tB builds, and a recap of twinBASIC highlights from 2024.
- twinBASIC Update: November 18, 2024: (Nov 18, 2024) Highlights include step-by-step instructions for building PhotoDemon with twinBASIC, a timeline update for the next BETA release, and the passing of a BASIC icon.
- twinBASIC Update: November 26, 2024: (Nov 26, 2024) Highlights include my presentation to the UK Access User Group and a .CAB file packaging utility built with twinBASIC by HackerVlad.
- twinBASIC Update: December 2, 2024: (Dec 2, 2024) Highlights include a sale on *perpetual* twinBASIC licenses, a tB OCR project, a no-cloud tB Chat LLM project, and a preview of the release notes for the next BETA.
- twinBASIC Update: December 9, 2024: (Dec 9, 2024) Highlights include a proof of concept Excel XLL add-in written in twinBASIC, the TBMAN toolkit twinPACK, and a successful port of the OrdoPdfReader OCX.
Under 100
- ["Under 100" tag page]: Show all articles with the tag "Under 100" (including those where "Under 100" is a secondary tag).
-
Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
-
What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
-
What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
-
What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
-
What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
-
What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
-
What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
-
What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
-
What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
-
What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
-
What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
-
Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
-
What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
Unicode
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
-
Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Much Ado About Little: The #Under100 Series: (Aug 24, 2021) Brevity is the soul of wit.
- What is a Database Index?: (Aug 25, 2021) The concept of database indexes explained in under 100 words. #Under100
- What is a Covering Index?: (Aug 26, 2021) The concept of "covering indexes" explained in under 100 words. #Under100
- What is Referential Integrity?: (Sep 29, 2021) The concept of referential integrity explained in under 100 words.
- What is a Call Stack?: (Nov 3, 2021) The concept of a call stack explained in under 100 words. #Under100
- What is COM?: (Mar 5, 2022) The concept of COM explained in under 100 words. #Under100
- What is Database Normalization?: (Oct 20, 2022) The concept of database normalization explained in under 100 words. #Under100
- What is rowversion in SQL Server?: (Oct 31, 2022) The concept of SQL Server's rowversion data type explained in under 100 words. #Under100
- What does RBAR mean?: (Nov 3, 2022) The concept of RBAR explained in under 100 words. #Under100
- What is cyclomatic complexity?: (Jun 29, 2023) The concept of cyclomatic complexity explained in under 100 words. #Under100
- What are Pure Functions?: (Aug 1, 2023) The concept of pure functions explained in under 100 words. #under100
- Complex vs. Complicated: (Aug 2, 2023) The difference between complex and complicated explained in under 100 words. #Under100
- What is a Procedure Signature?: (Mar 25, 2024) The concept of procedure signatures explained in under 100 words. #Under100
- ["Unicode" tag page]: Show all articles with the tag "Unicode" (including those where "Unicode" is a secondary tag).
- Unicode MsgBox Revisited: (Sep 15, 2022) A small improvement to my Unicode-friendly MsgBox and a handy trick for avoiding compile errors across Word/Excel/Access/etc.
UX
- ["UX" tag page]: Show all articles with the tag "UX" (including those where "UX" is a secondary tag).
-
6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
-
Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
-
4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
-
Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
-
18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
VBA
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
-
Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
-
Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
-
Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
-
Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
-
3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
-
Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
-
Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
-
Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
-
Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
-
Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
-
Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
-
Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
-
MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
-
Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
-
Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
-
Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
-
How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
-
An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
-
Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
-
Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
-
The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
-
Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
-
The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
-
The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
-
When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
-
Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
-
Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
-
The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
-
Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
-
Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
-
The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
-
The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
-
Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
-
The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
-
32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
-
The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
-
How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
-
3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
-
"Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- 6 Reasons Why I No Longer Use Bound Forms to Add Records in Microsoft Access: (Jun 29, 2021) Just because something can serve two purposes, doesn't mean it should. (Reason number four can be a real game-changer.)
- Simple vs. Easy: (Sep 24, 2021) It's not easy to build simple software. These 4 simple tips will make the process easier.
- 4 Approaches to Storing and Displaying Time Spans in Microsoft Access: (Apr 12, 2022) As an Access developer, how do you store and display time spans like "3 days" or "2 weeks"? Let's cover the pros and cons of four different approaches.
- Countering Automation Bias: (Jul 10, 2023) Those handy default values you provide your users could be doing more harm than good.
- 18 Tips to Build a Great Report Filtering User Experience in Microsoft Access: (Dec 27, 2023) A great report filtering UX should be intuitive, consistent, simple, powerful, efficient, and beautiful. Here are 18 tips to help you do just that.
- ["VBA" tag page]: Show all articles with the tag "VBA" (including those where "VBA" is a secondary tag).
- Avoiding Overflow Errors When Defining Calculated Constants: (Mar 10, 2022) Overflow errors are usually straightforward. But what about when you get an overflow assigning a value of 1 to a Long integer?
- Philipp Stiefel on VBA Compilation: (Mar 24, 2022) Is VBA an interpreted language? Or a compiled language? Or something in between. Philipp Stiefel shines light on the topic for us.
- Static Functions and Subs: (Apr 20, 2022) After fifteen years of writing VBA, I'm still learning new features of the language. Even if they're not particularly useful features...
- Namespaces in VBA: (Sep 19, 2022) VBA may not have the same level of formal support for namespaces as VB.NET, but with a little creativity, we can realize the same benefits in other ways.
- 3 Ways to Generate Temporary File Names in VBA: (Oct 4, 2022) Here are three options for generating temporary file names in VBA. Which is best? As with many programming questions, the answer is, "It depends."
- Dollar Signs at the End of VBA Functions: (Nov 10, 2022) What's the difference between Left() and Left$()? Why would you use one or the other? And what do *I* do, personally?
- Avoiding the "Invalid in Immediate Pane" Error: (Dec 30, 2022) Sometimes, using the colon character to combine statements in the immediate window results in an "Invalid in immediate pane" error. Here's why and how to fix it.
- Scope vs. Extent in VBA: (Jan 6, 2023) Master the extent and scope of your VBA variables for code that's efficient, effective, and easy to maintain.
- Choosing the Proper Lifetime of Variables in VBA: (Jan 9, 2023) Some values should be calculated every time you need them. Others should be stored for performance reasons. But how do you decide which way to go?
- Block-Level Scope in VBA...Does Not Exist: (Jan 11, 2023) VB.NET and VBA may look the same, but there are some important differences. This is a little-known feature of VB.NET that I really wish was available in VBA.
- Idempotence vs. Determinism: (Feb 2, 2023) Idempotent functions can safely be run multiple times. Deterministic functions always return the same output given the same inputs. Let's explore further.
- Enums in VBA: A Great 10-Minute Introductory Video: (Feb 3, 2023) Excel MVP Paul Kelly packs a bunch of great information (including a well-hidden feature) into this ten-minute video introducing Enums in VBA.
- MS Access Windows API Viewer: (Mar 2, 2023) Here are three good options for looking up proper Declare statements when calling Windows API functions from VBA.
- Why Do I Need to Set Objects to Nothing in VBA?: (Mar 20, 2023) Everyone knows you need to set object variables to nothing in VBA, right? ... Right?
- Five Problems Working with Global Constants in VBA: (Mar 24, 2023) Working with global constants in VBA is unnecessarily difficult, resulting in code that's harder to read and maintain than it needs to be.
- Tools > References... Safe List: (Jun 19, 2023) A list of references that may be safely included with your VBA projects without requiring any extra effort during deployment.
- How to Efficiently Check for Empty Strings in VBA: (Jul 20, 2023) Yes, there is a right way and a wrong way to check for empty strings in VBA. Actually, there are *two* right ways and *two* wrong ways. Let's explore all four.
- An Article About Nothing: (Aug 10, 2023) This one's for the nihilists. We explore the many ways to express the concept of nothingness in VBA.
- Much Ado About Nothing: (Aug 11, 2023) An in-depth look at the Nothing keyword in VBA: when you need it; when you don't; and one technique to avoid it altogether.
- Working with Null in Microsoft Access: (Aug 14, 2023) Let's explore the many ways to check for, handle, and store Null values. Spoiler alert: the best way to do it varies between VBA and SQL.
- The Missing Keyword in VBA: (Aug 16, 2023) Wondering what the IsMissing() function is all about in VBA? We'll explore that plus all the ins and outs of the VBA keyword that isn't: Missing.
- Working with Empty in VBA: (Aug 29, 2023) A deep dive into the Empty keyword in VBA: why it exists, how to check for it, when it makes sense to check for it, and--most importantly--how NOT to check for it.
- The vbNullString Constant in VBA: (Sep 7, 2023) What is the vbNullString constant in VBA and how does it differ from a simple empty string ("")?
- The Magic Behind Microsoft Access Form Object Properties in VBA: (Sep 15, 2023) By using the Me keyword, you can leverage the automatically generated properties to retrieve and set data in VBA.
- When–And When Not–To Use the Statement Separator Character in VBA: (Sep 19, 2023) Did you know you can combine lines of code in VBA with the colon character? The key is to understand when--and when not--to use it.
- Standard String Concatenation in VBA is Slow and Inefficient: (Sep 21, 2023) A deep dive into the inner workings of string concatenation in VBA and why appending a single character to a long string can be so expensive.
- Create Standalone Functions to Return User Input Values in Microsoft Access: (Oct 4, 2023) A combination of the GetInfoForm() function, custom VBA types, and "Extract Method" refactoring helps reduce our Access application's complexity.
- The Pitfalls of Implicit Boolean Conversion in VBA: (Nov 14, 2023) VBA's implicit boolean conversions can trip up even experienced programmers. Negating the results of the Len() function is a perfect example.
- Nullable Types in VBA: (Nov 15, 2023) Ever wondered about the best ways to handle Null values in VBA? There's the ideal solution and then there's what's actually available in the language.
- Reader Question: Do DAO Objects Need to be Closed?: (Nov 16, 2023) Let's explore the conflicting opinions and scarce documentation on whether you need to close your recordsets and databases in Access.
- The vbNullChar Constant in VBA: (Nov 21, 2023) What is the vbNullChar constant in VBA and how does it differ from vbNullString?
- The Secret to Achieving Naming Bliss in VBA Class Modules: (Nov 28, 2023) This little-known technique from Rubberduck VBA maintainer and MVP Mathieu Guindon will change how you write class modules forever.
- Improve the Readability of Numeric Settings in VBA: (Dec 7, 2023) In VBA, numeric property settings (such as ComboBox.TextAlign–where 3 = "Right") can be handled in many ways, but some ways are more right than others.
- The Curious Case of the Return Type of the hWndAccessApp Method in 64-bit VBA: (Dec 11, 2023) Is everything I thought I knew about 64-bit vs. 32-bit VBA wrong? Or is there a problem with the Access object model? Or is it something else?
- 32-bit vs. 64-bit VBA: Deep Dive: (Dec 15, 2023) A deep dive into the past, present, and future of the transition from 32-bit VBA to 64-bit VBA.
- The Windows Registry: A Deep Dive for VBA Developers: (Apr 11, 2024) Everything you need to know to get started reading and writing to the Windows Registry from VBA without breaking into a cold sweat.
- How to Get the String Values of an Enum in VBA: (Jun 25, 2024) Getting the string values for enums in VB.NET is easy using the built-in ToString method. What's the VBA equivalent?
- 3 Methods of Logging in VBA: (Jul 17, 2024) Let's explore the various ways to log information in our Microsoft Access applications.
- "Microsoft Print to PDF" Default Output Folder: (Oct 28, 2024) A recap of what I discovered while trying to set the default save folder for the "Microsoft Print to PDF" driver using VBA in Access.
VBA to T-SQL via TDD
- ["VBA to T-SQL via TDD" tag page]: Show all articles with the tag "VBA to T-SQL via TDD" (including those where "VBA to T-SQL via TDD" is a secondary tag).
-
How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
-
VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
-
VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
-
VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
-
VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
-
VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
-
VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
-
VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
-
VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
-
VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
-
VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
Version Control
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
-
High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
-
An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
-
No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
-
The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
-
No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
-
Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
-
Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
-
Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
-
Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
-
Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
-
Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
-
Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
-
Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
-
Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
-
Peace of Mind from Version Control: (Mar 9, 2021) "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?
-
It's All About the Diff: (Mar 17, 2021) 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.
-
Reverting Unwanted Changes: (Mar 18, 2021) 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.
-
A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
-
Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
-
Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
-
Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
-
Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
-
What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
-
Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
-
Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
-
Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
-
Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
-
Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- How to Convert a VBA Function to a SQL Server Scalar Function: (Sep 3, 2021) MS Access Developers Can Remove All the Risk From This Complex Process With These 3 Words
- VBA to T-SQL via TDD: Step 1: (Sep 6, 2021) Step 1. Identify or create test data in Microsoft Access
- VBA to T-SQL via TDD: Step 2: (Sep 8, 2021) Step 2. Build a "test table population query" in Microsoft Access
- VBA to T-SQL via TDD: Step 3: (Sep 9, 2021) Step 3. Create a temporary test table in SQL Server
- VBA to T-SQL via TDD: Step 4: (Sep 10, 2021) Step 4. Use the results of your Access query to populate the test table
- VBA to T-SQL via TDD: Step 5: (Sep 11, 2021) Step 5. Create a dummy scalar function in SQL Server
- VBA to T-SQL via TDD: Step 6: (Sep 13, 2021) Step 6. Build a test query in SQL Server to return failing tests
- VBA to T-SQL via TDD: Step 7: (Sep 14, 2021) Step 7. Execute the test query in SQL Server to verify it fails
- VBA to T-SQL via TDD: Step 8: (Sep 15, 2021) Step 8. Alter the scalar function to address failures
- VBA to T-SQL via TDD: Step 9: (Sep 16, 2021) Step 9. Execute the test query in SQL Server
- VBA to T-SQL via TDD: Step 10: (Sep 17, 2021) Step 10. Repeat steps 8 & 9 until all tests pass
- ["Version Control" tag page]: Show all articles with the tag "Version Control" (including those where "Version Control" is a secondary tag).
- High Wire Walking With No Net: (Sep 4, 2020) In those early days, our method of "source control" was making regular copies of the front-end database and appending a date to the filename. This was....less than ideal. The problem is best illustrated with a quick story.
- An Homage to Mercurial: (Sep 7, 2020) I believe without a doubt--even knowing what I know now--that I made the right decision at the time. If I could go back to 2009 and do it over again, I would still go with Mercurial. If I were starting from scratch in 2020...that's a different story.
- No Longer Set: (Sep 8, 2020) Using version control is the most impactful change you can make to improve the quality of your Microsoft Access applications. Here is a quick list of just some of the benefits you gain using version control.
- The Starting Point: (Sep 9, 2020) Before we can use a DVCS with our Access application, we need to convert the binary Access file into a series of text files. The best place to start (and where my journey began) is with this StackOverflow answer.
- No Longer Set: (Sep 10, 2020) How do we save database properties to text? By iterating through the database's .Properties collection, of course. Here is some sample code...
- Tables to Text: Do it for the DVCS!: (Sep 13, 2020) Anything that can lead to a bug in your software belongs in version control. That includes local tables with design-time data.
- Referencing references: (Sep 14, 2020) While we can use the VBA user interface to display the references, we can't rely on that approach if we want to automate exporting our Access binary file to text files. Luckily, there is a solution.
- Tracking Table Structure Changes: (Sep 15, 2020) Another potential source of bugs is changes to the structures of our tables. This includes both local tables and linked tables that reside in our back-end.
- Exporting Queries for Version Control: (Sep 16, 2020) SaveAsText will export queries to text files, but calling those files "human-readable" is a stretch.
- Putting It All Together: (Sep 17, 2020) I expanded on the original decompose.vbs script. The code below is the culmination of more than 50 individual changes and tweaks over 10+ years.
- Access Version Control: My Philosophy: (Sep 18, 2020) These rules are intended as a guiding philosophy. If I'm getting closer to meeting this vision, I know I'm moving in the right direction.
- Scraps of Wood and Code: (Oct 13, 2020) Resisting the packrat mentality.
- Migrating Mercurial: (Nov 25, 2020) I had to update the settings file for 120 Mercurial repositories. I saved hours of tedium using a regex in the "Find in Files" feature of Notepad++.
- Tracking Schema Changes: (Jan 28, 2021) If it can cause a bug in your software, you should be tracking it in version control. Database schema changes absolutely fall into that category.
- Peace of Mind from Version Control: (Mar 9, 2021) "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?
- It's All About the Diff: (Mar 17, 2021) 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.
- Reverting Unwanted Changes: (Mar 18, 2021) 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.
- A Quick, Free Way to Try Version Control with Microsoft Access: (Jul 9, 2021) Curious about getting started with version control in Microsoft Access, but don't want to commit a lot of time or money? This could be just the solution for you.
- Learn to Love Text-Based Version Control with "Highlights for Children": (Jul 29, 2021) 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...
- Make Your Access App More Resilient with Version Control: (Sep 25, 2023) Reassembling the pieces of a fragile system is a fool's (horse's?) errand. Turning back the clock is a more reliable fix.
- Git vs. Mercurial in 2024: (Jan 23, 2024) This classic article from fifteen years ago contains one of the most impressively specific (and accurate) technology predictions I've ever read.
- Mercurial: The Road Less Traveled: (Feb 1, 2024) Unfortunately, choosing the less popular version control system has some important real-world drawbacks.
- What's the Purpose of an Access Version Control Add-in?: (Mar 5, 2024) Access version control add-ins are not a replacement for Git, Subversion, or Mercurial.
- Installing the Access Version Control Add-in: Step-by-Step: (Mar 6, 2024) Looking to try version control with Microsoft Access? Start here by installing Adam Waller's free and open-source Version Control Addin for MS Access.
- Five Types of Files to Exclude From MS Access Version Control: (Mar 8, 2024) The provided sample .hgignore and .gitignore files are good starting points when setting up new Microsoft Access version control repositories.
- Access Version Control: A Quick Start Guide: (Mar 14, 2024) With this step-by-step guide, you'll be using version control with Access in under 20 minutes.
- Hosting Mercurial Repositories Online with Helix TeamHub: (Mar 19, 2024) Helix TeamHub is the obvious choice for Mercurial repository hosting for solo Access developers and small teams.
- Version Control and Cloud Drives: Better Keep 'em Separated: (Apr 24, 2024) Git and Mercurial repositories don't mix well with cloud drives like OneDrive and Dropbox. Here are two alternative approaches to keep you out of trouble.
Video
- ["Video" tag page]: Show all articles with the tag "Video" (including those where "Video" is a secondary tag).
-
VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
-
Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
-
Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
-
VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
-
VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
-
VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
-
VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
Watches
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
-
Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
-
Break When Value Is True: (Mar 7, 2021) 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.
-
Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- VIDEO: Modern On Off Buttons in Access: (Jul 27, 2022) I recorded a YouTube video that demonstrates how to implement the Modern On/Off button feature that I wrote about yesterday.
- Access Job Interview Questions: (Aug 26, 2022) Richard Rost--today's most prolific creator of Microsoft Access video tutorials--has put together a great baseline of questions and answers that test your Access knowledge.
- Access Job Interview Questions: Follow-up Q&A: (Aug 30, 2022) Topics covered include Access security best practices, "deploying" trusted locations to users, and avoiding reserved words when naming database objects.
- VIDEO: Sorting Continuous Forms: (Sep 2, 2022) A 12-minute video that shows you how to implement my NewSort and UseHand functions for sorting continuous forms in MS Access.
- VIDEO: "Codifying" Long Names: (Sep 12, 2022) Former Access MVP Jack Stockton translates my SQL Server "Codify()" function to work with Microsoft Access backend databases.
- VIDEO: Design Patterns with Access: (Sep 29, 2022) "I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." How Bruce Lee's advice applies to MS Access.
- VIDEO: twinBASIC Update at DevCon Vienna 2023: (May 8, 2023) Learn about what the future of twinBASIC and Microsoft Access might look like from my Access DevCon Vienna 2023 presentation.
- ["Watches" tag page]: Show all articles with the tag "Watches" (including those where "Watches" is a secondary tag).
- Watch Expression: (Mar 6, 2021) A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
- Break When Value Is True: (Mar 7, 2021) 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.
- Break When Value Changes: (Mar 8, 2021) When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Week in Review
- ["Week in Review" tag page]: Show all articles with the tag "Week in Review" (including those where "Week in Review" is a secondary tag).
-
Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
-
Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
-
Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
-
Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
-
Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
-
Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
-
Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
-
Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
-
Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
-
Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
-
Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
-
Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
-
Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
-
Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
-
Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
-
Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
-
Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
-
Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
-
Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost,
a data classification guide, and an Access QR code generator.
-
Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
-
Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
-
Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
-
Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
-
Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
-
Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
-
Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
-
Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
-
Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
-
Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
-
Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
-
Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
-
Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
-
Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
-
Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
-
Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
-
Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
-
Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
-
Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
-
Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
-
Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
-
Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
-
Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
-
Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
-
Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
-
Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
-
Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
-
Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
-
Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
-
Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
-
Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
-
Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
-
Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
-
Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
-
Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
-
Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
-
Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
-
Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
-
Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
-
Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
-
Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
-
Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
-
Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
-
Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
-
Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
-
Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
-
Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
-
Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
-
Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
-
Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
-
Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
-
Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
-
Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
-
Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
-
Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
-
Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
-
Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
-
Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
-
Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
-
Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
-
Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
-
Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
-
Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
-
Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
-
Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
-
Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
-
Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
-
Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
-
Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
-
Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
-
Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
-
Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
-
Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
-
Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
-
Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
-
Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
-
Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
-
Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
-
Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
-
Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
-
Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
-
Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
-
Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
-
Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
-
Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
-
Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
-
Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
-
Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
-
Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
-
Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
-
Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
-
Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
-
Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
-
Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
-
Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
-
Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
-
Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
-
Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
-
Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
-
Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
-
Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
-
Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
-
Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
-
Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
-
Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
-
Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
-
Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
-
Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
-
Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
-
Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
-
Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
-
Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
-
Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
-
Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
-
Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
Whiteboard Sessions
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
-
The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
-
Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Week in Review: May 7, 2022: (May 7, 2022) Highlights include an IE integration article from Daniel Pineault, an Access tool from Crystal Long, and a PowerApps User Group video.
- Week in Review: May 14, 2022: (May 14, 2022) Highlights include the Access Dataverse Connector *finally* reaching General Availability, the public release of 3 DevCon videos, and another big Access bug.
- Week in Review: May 21, 2022: (May 21, 2022) Highlights include a Microsoft Access Roadmap update, sample code for trig functions, and a discussion about preserving Access tips of yore.
- Week in Review: May 28, 2022: (May 28, 2022) Highlights include two new Access bugs, a modern On/Off toggle control, setting list box font colors by column, and resurrected videos from the Access forums vault.
- Week in Review: June 4, 2022: (Jun 4, 2022) Highlights include major changes to the Access roadmap, Richard Rost's Beginner Access video course is now free, and research on developer interviews.
- Week In Review: June 11, 2022: (Jun 11, 2022) Highlights include a better date picker control, dashboard-style gauges, and drawing shapes in Access reports.
- Week in Review: June 18, 2022: (Jun 18, 2022) Highlights include building custom progress bars, creating organizational charts, and yet another Access bug [sigh].
- Week in Review: June 25, 2022: (Jun 25, 2022) Highlights include an elegant solution to synchronized scrolling, a novel approach to db schema versioning, and a deep dive into recovering deleted db objects.
- Week in Review: July 2, 2022: (Jul 2, 2022) Highlights include a deep dive into the Autoexec macro, compacting the current database via VBA, and a massive Access drawing reference.
- Week in Review: July 9, 2022: (Jul 9, 2022) Highlights include code to activate a specific ribbon tab, a deep dive into the innards (and dangers) of multivalue fields, and--yes--more Access bugs.
- Week in Review: July 16, 2022: (Jul 16, 2022) Highlights include 5 things NOT to do when writing code, embedding videos on Access forms, and--of course--more bugs. :-(
- Week in Review: July 23, 2022: (Jul 23, 2022) Highlights include the latest edition of Karl Donaubauer's Access News, creating a custom splash form, and the public release of the SSMS-style "Access Studio" tool.
- Week in Review: July 30, 2022: (Jul 30, 2022) Highlights include tips for designing Access apps for tablet use, sorting forms by combo box columns, and CUPID--an alternative to SOLID principles.
- Week in Review: August 6, 2022: (Aug 6, 2022) Highlights include the list of Access fixes for Version 2206, a deep dive into how Access stores queries, and a rant against today's overly complicated forums.
- Week in Review: August 13, 2022: (Aug 13, 2022) Highlights include Peter Cole's 32 to 64-bit conversion presentation, a deep dive into how Access stores queries, and a sad announcement from MVP Daniel Pineault.
- Week in Review: August 20, 2022: (Aug 20, 2022) Highlights include Colin Riddington's Nav Pane Helper, Richard Rost's Access Developer Interview Questions, and Rick Hanson's Used Book Business Access App.
- Week in Review: August 27, 2022: (Aug 27, 2022) Highlights include a dedicated web page for the Access Europe User Group, a Nav Pane Helper Add-in, and a deep dive into database theory.
- Week in Review: September 3, 2022: (Sep 3, 2022) Highlights include an add-in to check Access/Windows/Office versions, a query metadata viewer, and multiple ways to change the mouse cursor in MS Access.
- Week in Review: September 10, 2022: (Sep 10, 2022) Highlights include a major milestone for (and giveaway from) Richard Rost, a data classification guide, and an Access QR code generator.
- Week in Review: September 17, 2022: (Sep 17, 2022) Highlights include a new YouTube channel from Daniel Pineault, modern chart reference, and form resizing and "profiles" videos.
- Week in Review: September 24, 2022: (Sep 24, 2022) Highlights include bug fixes in Access v2208, Microsoft's new Office update strategy, creating ACCDB/ACCDE files using code, and a series on TempVars.
- Week in Review: October 1, 2022: (Oct 1, 2022) Highlights include Pivot Tables and Pivot Charts, exporting all Access tables into Excel, and many changes to future Access User Group presentations.
- Week in Review: October 8, 2022: (Oct 8, 2022) Highlights include using Base64 encoding to embed images in Thunderbird, seven(!) IslaDogs articles, and episode 4 of Karl Donaubauer's Access NewsCast.
- Week in Review: October 15, 2022: (Oct 15, 2022) Highlights include changes to the Access team's development priorities, adding spell check to Access, and generating Excel charts via automation from Access.
- Week in Review: October 22, 2022: (Oct 22, 2022) Highlights include a reserved word checker utility, executing PowerShell cmdlets from VBA, using Access in an Azure VM, and 5 types of control tips.
- Week in Review: October 29, 2022: (Oct 29, 2022) Highlights include a data macros how-to, time zone-aware dates, automating the Access nav pane, and collapsing/expanding the ribbon.
- Week in Review: November 5, 2022: (Nov 5, 2022) Highlights include a new Access MVP (congrats Juanjo Luna!), a deep dive into the FileSystemObject, and using UIAutomation to interact with the ribbon.
- Week in Review: November 12, 2022: (Nov 12, 2022) Highlights include two new Access User Group recordings, a WizHook sample database and reference, and a couple of videos on macro blocking.
- Week in Review: November 19, 2022: (Nov 19, 2022) Highlights include multiple ways to hide sensitive data, a CDO email tester, an improved SQL editor, and updates from the Access dev team.
- Week in Review: November 26, 2022: (Nov 26, 2022) Highlights include a sneak preview of Rubberduck 3.0, multiple articles on Access keyboard shortcuts, and aligning text with monospaced fonts.
- Week in Review: December 3, 2022: (Dec 3, 2022) Highlights include the WizHook TwipsFromFont function, an enhanced message box, and drawing dynamic meters on Access reports.
- Week in Review: December 10, 2022: (Dec 10, 2022) Highlights include Access disappearing from the Microsoft 365 Roadmap, bug fix release 2211 details, maps, maps, and more maps.
- Week in Review: December 17, 2022: (Dec 17, 2022) Highlights include Access's new code signing feature, rotating and scaling images, drawing snowflakes (festive!), and a BRAND NEW Access blog.
- Week in Review: December 24, 2022: (Dec 24, 2022) Highlights include tentative dates for Access DevCon Vienna, the evils of split forms, listing complex fields, and more festive Access art from Crystal Long.
- Week in Review: December 31, 2022: (Dec 31, 2022) Highlights include a deep dive into creating a customer follow-up database, automatic form resizing, and a risk-minimizing approach to app rewrites.
- Week in Review: January 7, 2023: (Jan 7, 2023) Highlights include 15 tips & tricks from Karl Donaubauer, the new digital signing feature for Access databases, and how to hash a string in VBA.
- Week in Review: January 14, 2023: (Jan 14, 2023) Highlights include using an ActiveX control to collect handwritten signatures, multiple options for getting special folders in VBA, and managing old data.
- Weeks in Review: January 28, 2023: (Jan 28, 2023) I'm back! Highlights from the past two weeks include using web APIs in Access, Rubberduck 3.0 news, using the registry from VBA, and more on ChatGPT.
- Week in Review: February 4, 2023: (Feb 4, 2023) Highlights include a tool to localize Access applications (coming soon) and a couple of good (if slightly off-topic) articles on management and pricing.
- Week in Review: February 11, 2023: (Feb 11, 2023) Highlights include a video showing how to integrate charts.js in Access, calling the Windows Color Picker Dialog from VBA, and an Access CalendarMaker.
- Week in Review: February 18, 2023: (Feb 18, 2023) Highlights include a video on the current state of Microsoft Access, closing open Access objects (reports, etc.), and using temp tables to boost performance.
- Week in Review: February 25, 2023: (Feb 25, 2023) Highlights include a modern date-time picker proof of concept, using SQL Server views from Access, and writing code other people can read.
- Week in Review: March 4, 2023: (Mar 4, 2023) Highlights include a trick to update parent form calculations without using subform events, translation tools in Access, and early/late binding declarations.
- Week in Review: March 11, 2023: (Mar 11, 2023) Highlights include a deep dive into form events, optimizing queries in SQL Server, dealing with split forms, and how to embed QR codes in a Word mail merge.
- Week in Review: March 18, 2023: (Mar 18, 2023) Highlights include automating Word to create a font list, Name AutoCorrect, horizontal continuous forms, and the new Edge-based browser control.
- Week in Review: March 25, 2023: (Mar 25, 2023) Highlights include integrating better Access charts, a Table Analyzer and Viewer utility, SQL Server security deep dive, and opening external files and URLs from VBA.
- Week in Review: April 1, 2023: (Apr 1, 2023) Highlights include how to find a control associated with a label, Access's surprising folder-locking behavior, and a new setting to make your database self-destruct.
- Week in Review: April 8, 2023: (Apr 8, 2023) Highlights include a reliable way to bypass AutoExec in VBA, a Pro version of the IslaDogs Table Analyzer, and the new Rubberduck VBA Swag Shop.
- Week in Review: April 15, 2023: (Apr 15, 2023) Highlights include drawing stoplights and dials on reports, a SQL-to-VBA-to-SQL utility, creating calendar reports, and migrating Access tables to SQL Server.
- Week in Review: April 22, 2023: (Apr 22, 2023) Highlights include episode 5 of Karl Donaubauer's Access News video update, how to sell Access services with Juan Soto, and lightweight MVVM in VBA.
- Week in Review: April 29, 2023: (Apr 29, 2023) Highlights include the release of the Northwind 2.0 database templates, automatic form resizing, and a deep dive into VBA events with a.p.r. pillai.
- Week in Review: May 6, 2023: (May 6, 2023) Highlights include automating DSN-less links to SQL Server, a deep dive on the form delete events, and the full release of the new Edge-based browser control.
- Week in Review: May 13, 2023: (May 13, 2023) Highlights include 3 publicly released videos from DevCon 2023 and an a.p.r. pillai article/Eric Blomquist video on using class modules to reduce form code.
- Week in Review: May 20, 2023: (May 20, 2023) Highlights include a series on building a calculator in Access, selling Access solutions with Juan Soto, and creating an HTML table from an Access table.
- Week in Review: May 27, 2023: (May 27, 2023) Highlights include a Windows registry class module from Philipp Stiefel, a deep dive into the new browser control, and Access news from the recent MVP Summit.
- Week in Review: June 3, 2023: (Jun 3, 2023) Highlights include integrating online licensing via KeyGen, more info on the new browser control, and exploring whether AI will replace programmers.
- Week in Review: June 10, 2023: (Jun 10, 2023) Highlights include a new batch of Access bug fixes, a video with tips for migrating a backend from Access to SQL Server, and a deep dive into the Rubberduck Style Guide.
- Week in Review: June 17, 2023: (Jun 17, 2023) Highlights include an article about the future of AI and work, inventory management and string functions in Northwind 2.0, and form templates.
- Week in Review: June 24, 2023: (Jun 24, 2023) Highlights include another installment of a.p.r. pillai's excellent series on streamlining form module code and videos on crosstab queries and temp tables.
- Week in Review: July 1, 2023: (Jul 1, 2023) Highlights include an AI-focused episode of the quarterly Access News webcast, the release of Rubberduck 2.5.9, and tips on importing web data into Access.
- Week in Review: July 8, 2023: (Jul 8, 2023) Highlights include the next installment of a.p.r. pillai's class-based form code series, AI regulations, and understanding project requirements.
- Week in Review: July 15, 2023: (Jul 15, 2023) Highlights include the return of DevHut.net, generating hashes in VBA, bypassing the trusted domains "feature," and an eye-opening video on great interface design.
- Week in Review: July 22, 2023: (Jul 22, 2023) Highlights include the seventh installment of a.p.r. pillai's class-based form code series, building Gantt charts in Access, and a deep dive into SQL subqueries.
- Week in Review: July 29, 2023: (Jul 29, 2023) Highlights include Richard Rost's series on tracking account balances, barcode scanning via PowerApps, improving image quality, and a SQL formatting add-in.
- Week in Review: August 5, 2023: (Aug 5, 2023) Highlights include the WiR debut of two new YouTube channels, monthly bug fixes from the Access team, and an introduction to using modern Combo Charts.
- Week in Review: August 12, 2023: (Aug 12, 2023) Highlights include global error handling, creating applications in Blazor, exporting Unicode characters to text files, and validating email addresses.
- Week in Review: August 19, 2023: (Aug 19, 2023) Highlights include a modern browser YouTube series from Daniel Pineault, the German Access Conference AEK25, and password hashing in Access.
- Week in Review: August 26, 2023: (Aug 26, 2023) Highlights include tips to automate the new browser control, sending WhatsApp messages from Access, Python in Excel, and AI-driven help via Microsoft Q&A Assist.
- Week in Review: September 2, 2023: (Sep 2, 2023) Highlights include a video series on Colin Riddington's Access Analyzer Pro tool, plus introductory videos on Eval, Data Macros, and the Form Detail On Paint event.
- Week in Review: September 9, 2023: (Sep 9, 2023) Highlights include a new beta release of the Access version control addin, trends in the Access job market, and API calls to get a list of open programs.
- Week in Review: September 16, 2023: (Sep 16, 2023) Highlights include a long-overdue update to the Access roadmap (LAA is coming!), an underrated new feature (thanks, Anders!), and a video on event-driven programming.
- Week in Review: September 23, 2023: (Sep 23, 2023) Highlights include the death of COM/VBA in New Outlook (?!?!), a web-based image editor for Access, and a deep dive into string-building performance in VBA.
- Week in Review: September 30, 2023: (Sep 30, 2023) Highlights include an in-person UK User Group Conference Nov 22-23, Advanced Database Design with Armen Stein, and a list of undocumented SysCmd values.
- Week in Review: October 7, 2023: (Oct 7, 2023) Highlights include a free file manager class from Alessandro Grimaldi, an update on the forthcoming Rubberduck 3.0 VBA addin, and well-tested Access file limits.
- Week in Review: October 14, 2023: (Oct 14, 2023) Highlights include a video on the future of Access with cameos from the Microsoft Access engineering team, a Decision Tree database, and Shared VBA Libraries.
- Week in Review: October 21, 2023: (Oct 21, 2023) Highlights include updateable cross-tab forms with Pat Hartman, George Hepworth's Searchable Catalog project, and Richard Rost's Decision Tree database.
- Week in Review: October 28, 2023: (Oct 28, 2023) Highlights include integrating ChatGPT into Access, the new Access Program Manager (Linda Cannon) at Access Lunchtime, and the Access team weighs in on New Outlook.
- Week in Review: November 4, 2023: (Nov 4, 2023) Highlights include Karl's Access News update, Access learning resources, SQL Server with geography data, and the coming death of VBScript.
- Week in Review: November 11, 2023: (Nov 11, 2023) Highlights include an update to the Access development priorities, a no-code way to highlight the current control, and a talk on classes and event-driven programming.
- Week in Review: November 18, 2023: (Nov 18, 2023) Highlights include ChatGPT in Access, Test Driven Development, implementing dictation, and a new Office default font and theme.
- Week in Review: November 25, 2023: (Nov 25, 2023) Highlights include the arrival of LAA in Access, adding gradients to forms, using named arguments in VBA, and multi-field search with only two controls.
- Week in Review: December 2, 2023: (Dec 2, 2023) Highlights include a new direct SQL view feature in Access, 7 issue fixes, a new release of the Rubberduck VBA project, and how to count "checkbox" fields.
- Week in Review: December 9, 2023: (Dec 9, 2023) Highlights include new (undocumented) functions for working with DateTimeExtended, an AI Builder for Access, and Jon Halder's TDD journey.
- Week in Review: December 16, 2023: (Dec 16, 2023) Highlights include my recent talk on using classes with import/export specs, many 64-bit VBA guides, and a new release of Adam Waller's version control add-in.
- Week in Review: December 23, 2023: (Dec 23, 2023) Highlights include an MZ-Tools tour from developer Carlos Quintero, an Edge browser control video series, and multi-select filtering of a continuous form.
- Week in Review: December 30, 2023: (Dec 30, 2023) Highlights include a 4-part Oasis SVN walkthrough, 3 new Edge browser control videos, VBA class basics, and a deep dive into Access's Filter By Form feature.
- Weeks in Review: January 13, 2024: (Jan 13, 2024) Highlights include the release of "Access on Steroids", a Rubberduck v3 update, a CDO StartTLS deep dive, and two presentations on classes in VBA.
- Week in Review: January 20, 2024: (Jan 20, 2024) Highlights include creating Windows taskbar notifications with VBA, FMS Access tools demo, and conditionally hiding buttons on continuous forms.
- Week in Review: January 27, 2024: (Jan 27, 2024) Highlights include an intro to star schemas, highlighting controls and columns in continuous forms, and auto-resizing subforms to fill available space.
- Week in Review: February 3, 2024: (Feb 3, 2024) Highlights include the demystification of MS 365 Update Channels, a Rubberduck v3 status update, and adding speech recognition to Access.
- Week in Review: February 10, 2024: (Feb 10, 2024) Highlights include the v4 release of the Access Version Control add-in, practical RegEx examples, and the top 10 advanced features of MZ-Tools.
- Week in Review: February 17, 2024: (Feb 17, 2024) Highlights include generating hashes with the Windows API, designing datasheets in VBA, creating custom checkboxes, and hiding subforms until the parent has data.
- Week in Review: February 24, 2024: (Feb 24, 2024) Highlights include a video review of recent Access bug fixes and 2024 priorities, hiding duplicate values in continuous forms, and an intro to form subclassing.
- Week in Review: March 2, 2024: (Mar 2, 2024) Highlights include the configuration of multiple VBA editor themes, how to create custom form navigation buttons, and moving/resizing continuous form columns.
- Week in Review: March 9, 2024: (Mar 9, 2024) Highlights include the new and improved Better Access Charts, combo box record lookup techniques, and an authoritative list of known MS Access bugs.
- Week in Review: March 16, 2024: (Mar 16, 2024) Highlights include continuous form tricks from IslaDogs, hiding the Access interface, sharing data outside your local network, and a Trust Center settings deep dive.
- Week in Review: March 23, 2024: (Mar 23, 2024) Highlights include VBA RegEx options with the coming death of VBScript, adding users to an Azure SQL database, and an interview with the author of a new Access book.
- Week in Review: March 30, 2024: (Mar 30, 2024) Highlights include recent Access bug fixes, a zoom box replacement, a RubberDuck 3 update, and integrating ChatGPT into Access.
- Week in Review: April 6, 2024: (Apr 6, 2024) Highlights include another episode of Karl Donaubauer's Access NewsCast, building a custom date picker, and the return of the venerable VBA add-in, Smart Indenter.
- Week in Review: April 13, 2024: (Apr 13, 2024) Highlights include videos on the MS Access Version Control add-in, Google Maps driving directions to multiple sites, and SQL Server audit tables.
- Week in Review: April 20, 2024: (Apr 20, 2024) Highlights include the monthly bug fix post from Microsoft, a rant against typed Arrays, polymorphism in VBA, extracting OLE images, and another modern browser bug.
- Week in Review: April 27, 2024: (Apr 27, 2024) Highlights include an Access roadmap update (!), compiling to .accde from VBA, managing SQL Server migrations, and SQL Express backups and restores.
- Week in Review: May 4, 2024: (May 4, 2024) Highlights include the public release of two DevCon Vienna presentations, sending emails via REST API, and how to zip and unzip files in VBA.
- Week in Review: May 11, 2024: (May 11, 2024) Highlights include preview videos of two new upcoming Access features, how to create billing statements, and using Graph REST API to create Outlook.com events.
- Week in Review: May 18, 2024: (May 18, 2024) Highlights include bug fixes from Microsoft, the Access Italy User Group launch, migrating foreign keys with SSMA, and MS Access usage numbers.
- Week in Review: May 25, 2024: (May 25, 2024) Highlights include a new place to chat about Access, the "Clean Project" feature of MZ-Tools, and the impact of VBScript deprecation on VBA developers.
- Week in Review: June 4, 2024: (Jun 4, 2024) Highlights include text box hints, tips on selling Access services, using the Graph REST API, and an open-source project to decompile .accde files.
- Week in Review: June 8, 2024: (Jun 8, 2024) Highlights include a deep dive into ImEx DataTask specs, processing credit cards in Access via PayPal, 4 pricing techniques, and two new features in the Beta channel.
- Week in Review: June 15, 2024: (Jun 15, 2024) Highlights include the pros and cons of fixed price and hourly billing, troubleshooting Access applications, and modernizing the Access interface.
- Week in Review: June 22, 2024: (Jun 22, 2024) Highlights include a new bug causing crashes in Access version 2405, a primer on integrating ImageMagick into Access, and a new VBA IDE on the horizon(?!).
- Week in Review: June 29, 2024: (Jun 29, 2024) Highlights include data analysis tips and techniques from MVP Luke Chung, a modern VBA-based slider control, and a wrapper class template wizard.
- Week in Review: July 6, 2024: (Jul 6, 2024) Highlights include a better way to see your queries, adapting your Access apps to improve gender/sex inclusivity, and a plea to Microsoft to keep VBScript.
- Week in Review: July 13, 2024: (Jul 13, 2024) Highlights include a talk on enhancing message boxes and forms, fun with text boxes, resizing list box columns to fit the content, and a deep dive into New Outlook.
- Week in Review: July 20, 2024: (Jul 20, 2024) Highlights include my VBA logging framework, a visual explanation of bubble sort, and how to properly relate students and parents in a relational database.
- Week in Review: July 27, 2024: (Jul 27, 2024) Highlights include using a framework in Access, one Redditor's quixotic quest for an Access replacement, and localization efforts leading to British waterautumns.
- Week in Review: August 3, 2024: (Aug 3, 2024) Highlights include a tablet-friendly UI technique, fetching current weather via a free web API, and a text file logger for my VBA logging framework.
- Week in Review: August 10, 2024: (Aug 10, 2024) Highlights include a free tool for building database diagrams, an intro to SaveAs/LoadFromText, and a showdown between hourly billing and value-based pricing.
- Week in Review: August 17, 2024: (Aug 17, 2024) Highlights include an intro to treeview controls, working with the Windows Registry, Access best practices, and understanding VBA libraries.
- Week in Review: August 24, 2024: (Aug 24, 2024) Highlights include using curl to download from the web, using PowerShell to send emails, exporting an Access query to a Word table, and kicking all users out of SQL Server.
- Week in Review: August 31, 2024: (Aug 31, 2024) Highlights include primers on two new Access features (the Monaco SQL Editor and Modern Chart Improvements), using curl to FTP from VBA, and when to use Access vs. Excel.
- Week in Review: September 7, 2024: (Sep 7, 2024) Highlights include a new bug causing msaccess.exe to hang on exit, how to export to PDF/A from Access, and the launch of an Access "developer research panel."
- Week in Review: September 14, 2024: (Sep 14, 2024) Highlights include runtime ribbon updates, locking records in continuous forms, FTP operations via curl, and the inaugural meeting of the Australia Access User Group.
- Week in Review: September 21, 2024: (Sep 21, 2024) Highlights include the relaunch of the UK Access User Group, working with the MS Graph API from VBA, and advanced interactive Gantt chart techniques.
- Week in Review: September 28, 2024: (Sep 28, 2024) Highlights include adding a multi-file drag-and-drop control to your Access forms, improved control tips, and accessing the call stack at runtime with vbWatchdog.
- Week in Review: October 5, 2024: (Oct 5, 2024) Highlights include the official release of the new modern chart feature, the release of Access 2024, and dynamically loading a DLL without registering it first.
- Week in Review: October 12, 2024: (Oct 12, 2024) Highlights include disabling shortcut menus on reports, drag and drop with Alessandro Grimaldi, and single sign-on cached ODBC connections.
- Week in Review: October 18, 2024: (Oct 19, 2024) Highlights include a deep dive into parentheses in VBA, ChatGPT's new canvas feature, and the official bug fix list for Access versions 2408 and 2409.
- Week in Review: October 26, 2024: (Oct 26, 2024) Highlights include a video intro to the new Modern Charts feature, combination query techniques, and handling bit fields in SQL Server.
- Week in Review: November 2, 2024: (Nov 2, 2024) Highlights include the Monaco SQL Editor release, TDD implementation techniques, intro to Cross Joins in SQL, and the inaugural meeting of the Access Beginners User Group.
- Week in Review: November 9, 2024: (Nov 9, 2024) Highlights include updated development priorities from the Access team, adding a row number to queries, and a treasure trove of VBA content at Awesome VBA.
- Week in Review: November 16, 2024: (Nov 16, 2024) Highlights include measuring the height of CanGrow controls, exporting an Access chart to PNG/GIF/JPG, building a photo cataloguer, and tabbing to the form footer.
- Week in Review: November 23, 2024: (Nov 23, 2024) Highlights include a new episode of Access News from Karl Donaubauer, a video walkthrough of the new Monaco SQL Editor, and a form resizing solution.
- Week in Review: November 30, 2024: (Nov 30, 2024) Highlights include key insights on Access-to-SQL Server migration, the pros and cons of the new Monaco SQL Editor, and practical VBA tutorials for dates and combo boxes.
- Week in Review: December 7, 2024: (Dec 7, 2024) Highlights include critical info for the migration to New Outlook, a detailed Access image gallery tutorial, and perspectives on pair programming benefits.
- ["Whiteboard Sessions" tag page]: Show all articles with the tag "Whiteboard Sessions" (including those where "Whiteboard Sessions" is a secondary tag).
- The Knowledge Square: (Jan 15, 2022) For knowledge workers in the 21st century, it's better to know what question to ask than it is to know the answer to the question.
- Microsoft Access: A Victim of Its Own Success: (Jun 6, 2022) Looking for bold new features in Microsoft Access? Don't hold your breath.
WizHook
- ["WizHook" tag page]: Show all articles with the tag "WizHook" (including those where "WizHook" is a secondary tag).
-
Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
-
WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
-
Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
-
Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
- Wiz(): Never Forget to Set the WizHook Magic Key: (Oct 26, 2022) This convenience function handles setting the WizHook Key property with the required magic value once per session.
- WizMsg(): A Simple Way to Create a MsgBox with Bold Text: (Oct 27, 2022) Bold text in a Microsoft Access message box? It's true. And it requires no API calls, no third-party libraries, and no arcane string syntax. Check out WizMsgBox!
- Sorting Arrays of Strings in Access with WizHook: (Nov 2, 2022) No need to write your own array-sorting code from scratch. Use the SortStringArray method of Access's hidden WizHook object instead!
- Microsoft Access WizHook References: (Nov 7, 2022) A list of all the best resources for the hidden and undocumented Microsoft Access WizHook object.
Sign up for more like this.
Enter your email
Subscribe