ArrowKeyNav Presentation

Today I gave my presentation on implementing Excel-style navigation using WithEvents to the Access Pacific Users Group.

Resources

Slide deck

Here's a PDF copy of the slides:

Sample database

Here's a copy of the sample database from my demo:

  • ArrowKeyNav-NoErrEx.accdb: (NOTE: I stripped the vbWatchdog code out of this copy of this db, so there is no real error handling in it now)

I will post a link to the recording when it is available.

The video is now available on YouTube:

Special thanks to Access MVP Crystal Long for producing and posting the video.

Further reading

Below is a sampling of my articles that go more in depth into some of the topics I mentioned during my talk:

Event-Driven Programming in VBA
Event-driven programming may sound complicated, but the concept is really quite simple.
Raising Custom Events in VBA
This quick tutorial will have you writing custom events in VBA in no time.
Navigating Continuous Forms
If Up is left and Down is right, you must be navigating a continuous form in Microsoft Access.
Handling Keyboard Events in Access
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
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.
The ArrowKeyNav Routine
Enable Excel-like navigation in your continuous forms by overriding the default behavior of the up and down arrow keys.
Beautiful Blocks of Boilerplate
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.
Using WithEvents to Encapsulate Event Handling Code
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
Using WithEvents to subclass form controls is a powerful technique. Here’s one way to handle multiple control types in a single class.
Throwing Errors in VBA
Introducing a frictionless alternative to Err.Raise.
An article about my custom Throw routine.
My Dirty Little Secret
I don’t use Me.Dirty = False in my #msaccess code. I wrap it up and call it from a “guard clause” instead.
An article about "guard clauses."

UPDATE [2021-05-19]: Added link to presentation on YouTube.