Current Microsoft MVP Awardees

MS Access™ MVP Awardee from July, 2007 through June, 2019


GPC's YouTube Training Video Library

Optimizing Access Interfaces for Editing w/Remote SQL Server/SQL Azure
In this video, I concentrate on ensuring that users load the minimum number of records for editing. The optimal number of records in an editing form would be one--the one record currently being edited. (This is the corrected version.)
Video Run Time: 14:47 Date Published: 2024-06-20

Optimizing Access Interfaces for Remote SQL Server/SQL Azure -- Limiting Selectable choices
In this video, I concentrate on limiting the number of choices offered to the user to improve start up responses. In the next, I'll concentrate on limiting the number of records returned for editing.(This is the corrected version.)
Video Run Time: 18:40 Date Published: 2024-06-18

Load Time Comparison for Local and Remote SQL Server
In this video, I compare average load times for a single record with a remotely hosted SQL Server database and a local SQL Server database. The results won't surprise you, probably.
Video Run Time: 6:10 Date Published: 2024-06-22

Optimizing Access Interfaces for Hosted SQL Server/SQL Azure, an apology and correction

Video Run Time: 1:41 Date Published: 2024-06-19

SQL Server Authentication without Saving User Credentials
You can improve security for an Access/SQL Server application by not saving user credentials in the linked tables' connection strings. You'll learn how to create a cached connection that Access can use to connect to the linked tables. The user need not see or know their UserID and PWD.
Video Run Time: 15:59 Date Published: 2024-05-30

Toggle “Password” Input Mask****/Plain Text –A Minor Complication
Toggling the input mask on a textbox control works as expected on the Click event of a command button. It does not work properly on the Click event of an image control. Here's the explanation and a simple work-around.
Video Run Time: 7:24 Date Published: 2024-05-28

Toggle Input Mask for Password Textbox Controls
This short video shows you one way to toggle a password to plain text in an Access login form so users can verify they've typed the correct characters before submitting the password for validation.
Video Run Time: 2:00 Date Published: 2024-05-26

Migrating “hidden” indexes on fields with Foreign Key constraints, Part 2
In this video, the 2nd of 2, I explore in more detail, what these indexes appear to me to be, why they are on fields involved in a relationship with Referential Integrity enforced, and why SSMA doesn't, and shouldn't, migrate them as indexes.
Video Run Time: 12:42 Date Published: 2024-05-16

Identify “hidden” indexes on fields with Foreign Key constraints, Part 1
Did you know that Access creates indexes on fields designated as Foreign Keys whether you ask for those indexes or not? You probably didn't know about them because those indexes do not appear in the Index property sheet for tables. In this video, you'll learn how to expose hidden indexes on a table and why you might want to do that.
Video Run Time: 6:48 Date Published: 2024-05-14

Import HTML Files into Access Tables and Correct Data Type of Fields
In this short video, I demonstrate converting short text fields in an HTML import file to Date/Time Fields in an Access table.
Video Run Time: 3:25 Date Published: 2024-05-11

My (somewhat belated) Return to Classic Client Server Design for PowerApps applications
PowerApps offers a lot of tools to filter, search and sort records, some of which are not natively available in Access. It turns out, however, that good design is the same in both environments. Ignore that at your own peril. Let my experience be a lesson.
Video Run Time: 19:05 Date Published: 2024-04-02

The Most Important PowerApps Flow for Access Developers to Know
Access developers have always had the power of reusable VBA Functions and Subroutines in their database applications. Adding PowerApps to our toolkits can seem like a step backwards when we learn that reusability is not quite so easy. On the other hand, Access developers who use SQL Server know that SQL Server has its own powerful tools: Stored Procedures and Functions. The brilliant part is that one simple pattern for PowerApps flows can bring all of that SQL Server processing strength into our Power Apps applications. I'll show you how. ERRATA: I noticed that around the 8 minute mark, I referred to "creating a view". I should have referred to , "creating a flow" to invoke the Stored Procedure. The error survived both recording and editing of the video. 😳 Link to Shane Young's Video on creating PowerApps flows. https://youtu.be/vpjf5mD-COs?list=TLPQMDIwMTIwMjRHlyqQyynJ9A
Video Run Time: 9:44 Date Published: 2024-01-02

Reusable PowerApps Code-- Maybe Not Your Typical VBA Function, but It Works!
Access developers have always had the power of reusable VBA Functions and Subroutines in their database applications. Adding PowerApps to our toolkits can seem like a step backwards when we learn that reusability is not quite so easy. However, there is a way to create reusable code which has at least some of the advantages that offers. This video shows you how. Reusable code across screens: https://blog.consideritman.com/2019/11/24/reuse-code-in-powerapps-across-screens/ https://powerusers.microsoft.com/t5/Power-Apps-Community-Blog/Code-re-usability-in-PowerApps- using-User-Defined-functions/ba-p/672998 https://congruentx.com/how-to-create-reuse-functions-in-power-apps/ https://www.youtube.com/watch?v=jIbVssqoatE&t=79s
Video Run Time: 17:24 Date Published: 2024-01-23

Wanna Feed Your Need for Speed? Named Formulas instead of Collections for PowerApps
How fast does your PowerApps application load and start? Not fast enough? Try replacing an overloaded StartUp with Named Formulas where possible. You'll be glad you did. In PowerApps, app level Formulas perform most of those same roles and enhance a PowerApps application in the same ways. I show you how it works, including tips on off-loading filtering and sorting to the database behind the app. There are trade-offs, such as flirting with the Delegation limit for large record sources. Overall, the benefits outweigh the risks. And the whole app is easier to manage into the bargain. Link to Shane Young's video that inspired this revision: https://youtu.be/jc2DquMS7qM
Video Run Time: 21:28 Date Published: 2023-12-29

Can I load 300,000 Records into a PowerApps Application? Yes! But check out what happened next!
PowerApps has a delegation limit of 500 to 2000 records at a time. What happens, then, if your record source contains 10s of thousands or even 100s of thousands of records? Can you put them in a collection and avoid that limit? Let's find out. Links to downloads: https://www.gpcdata.com/downloads/Employees2K7.zip https://www.gpcdata.com/downloads/Employeesbacpac.zip
Video Run Time: 15:38 Date Published: 2024-02-06

Should I use Collections, Named Formulas or Tables for Gallery Items? Here's My Choice, and Why
After comparing speed and usability, I came to a conclusion. In this video I offer some guidelines to help you choose between Collections, Named Formulas and Tables for Gallery Items. Let me know in the comments if you agree or disagree. This is a companion video to "Load 300,000 Records into a PowerApps Application?" Links to downloads: https://www.gpcdata.com/downloads/Employees2K7.zip https://www.gpcdata.com/downloads/Employeesbacpac.zip If you can't connect to the internet, how do you create an online, searchable database for a research library? The LTF Searchable Catalog is a full-featured app which can be supplemented with an Access desktop interface. Because of the unique environment and restrictions in the LTF museum, the interface must run on a cellular-enabled device, i.e. a tablet or smart phone.
Video Run Time: 17:28 Date Published: 2024-02-07

Let users know how many records are in the fully populated gallery without scrolling to the end.
Let your users know how many total records are going to be loaded into a gallery by querying the underlying record source. By default, galleries load records in groups of 100, so the user is left wondering, "Is that everything?" When Delegation Limits also come into play, the problem can be even more difficult. I solved the dilemma, except for one minor detail, with a PowerApps flow and a Stored Procedure in SQL Server. Here's the SQL from the Stored Proc. The rest of the code is in the video.
USE [NameOfYourDatabaseGoesHere]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER PROCEDURE [dbo].[RecordCount]
@SearchTerm varchar(10) = ''
AS
BEGIN
DECLARE @Recordcount int
SELECT @Recordcount = count(*) FROM dbo.Employees
WHERE LastName like '%' + @SearchTerm + '%' OR FirstName like '%' + @SearchTerm + '%'
RETURN @Recordcount
END
GO
Video Run Time: 12:20 Date Published: 2024-02-20

The Demo: Wanna Feed Your Need for Speed? Named Formulas instead of Collections for PowerApps
See how fast does your PowerApps application can load by replacing an overloaded StartUp with Named Formulas where possible. You'll be glad you did. In PowerApps, app level Formulas perform most of those same roles and enhance a PowerApps application in the same ways. I show you how it works, including tips on off-loading filtering and sorting to the database behind the app. There are trade-offs, such as flirting with the Delegation limit for large record sources. Overall, the benefits outweigh the risks. And the whole app is easier to manage into the bargain. Link to Shane Young's video that inspired this revision: https://youtu.be/jc2DquMS7qM Link to the companion 21 minute video describing Name Formulas in this app: https://youtu.be/1_4sllvUaSM
Video Run Time: 2:31 Date Published: 2023-12-30

Building the LTF Searchable Catalog-Part 9-PowerApps Formulas
Access developers can use Public Constants and Public Enums to enrich their functions and procedures. There are several advantages, including readability and consistency and consolidating definitions in a single location. In PowerApps, app level Formulas perform most of those same roles and enhance a PowerApps application in the same ways.
Video Run Time: 11:12 Date Published: 2023-10-28

App Variables and Application Bias
App variables, or Global variables, make it possible to pass data between screens in a multi-screen application. There are good ways to do that, and better ways to do that. In part 8, you learn how to do it more efficiently. Application Bias is the subconscious belief that once you've mastered one development environment, those skills automatically enable you to work in a new environment. While there are significant similarities, it's wise to be alert to the subtle differences as well. I explain how I fell into that bias and how I learned to overcome it.
Video Run Time: 12:57 Date Published: 2023-10-23

Context Variables or App Variables
A good naming convention helps keep variables sorted out. In PowerApps, variables can have App-wide, or global scope, or they can have screen level, or context scope. Using them correctly requires understanding the difference and when to use each. UpdateContext() creates local, or screen level variables. Set() creates App-wide, or global variables. My new naming convention helps me keep that straight. In Part 7 you learn the difference between the two and see an example of why it matters.
Video Run Time: 11:21 Date Published: 2023-10-20

Patch Records in the source table - Lessons from unbound Access forms
Bound or unbound interface objects in PowerApps? It's axiomatic that bound forms are the most effective way to manage data in Access. Is that also true in PowerApps? I argue that it's not. In Part 6 you review the Patch command, which allows you to append or update records in the underlying data source in a powerful, flexible way that I find preferable to trying to use Forms.
Video Run Time: 11:27 Date Published: 2023-10-18

Appropriate Roles for List and Detail Views in the PowerApps Interface
Deploy a smart interface: separate roles for List and Detail views. In Part 5 you review the most effective and performant way to display data to users and also offer them a way to edit that data as required. The initial list of records, or items, is read-only and formatted for presentation. To modify one of those items, a good interface also provides a detail screen in which all data points are open for edits. Compare this interface in a browser-based app to those you've created in Access. List views are read-only for quicker display. Detail views are editable.
Video Run Time: 10:00 Date Published: 2023-10-18

Leverage the Power of SQL Server Views to streamline data logic problems
Leveraging the greater power of the SQL Server database engine In Part 4 you learn how to use the greater data logic and data manipulation power of the SQL Server engine to shape data for display in an interface. Although this example is relatively simple, it illustrates the principle that you should try to use the SQL Server (or other database engine) to perform data logic tasks whenever possible. Save the interface resources for tasks related to displaying the information. I explain the design of the view which is used to populate a collection in the PowerApps application and explain why it's a better solution than doing the data lookup and concatenation directly in the interface.
Video Run Time: 6:09 Date Published: 2023-10-16

Display Many-to-Many Relationships in PowerApps Galleries: Books and their Authors
Displaying related records in a gallery and sub-galleries In Part 3, you learn how to recognize many-to-many relationships in a relational database. You also learn how to display the related records in the PowerApps interface. The records in one table populate a gallery. The records in the related table populate embedded sub-galleries in that main gallery. I show you how to set up the sub-galleries and return the records needed to populate them. I also show you how to create in-memory, temporary tables, or Collections, in PowerApps to minimize the number of times your application has to ask the database for those records. This technique is especially valuable for recordsets larger than the delegation limit in PowerApps.
Video Run Time: 17:06 Date Published: 2023-10-15

Filtering and Searching ensures you load the smallest possible number of records in a gallery
Searching and Filtering items in a gallery. Load one record at a time. In Part 2, you get to look at the techniques I used to filter nearly 2,000 records to load and display the minimum number of records possible.
Video Run Time: 17:26 Date Published: 2023-10-14

Why I Helped the Lander Trail Foundation Create a searchable online catalog (NO internet needed)
What the the Lander Trail Foundation is and why I helped them create on-line searchable catalog of books. If you can't connect to the internet, how do you create an online, searchable database for a research library? This video is the kick-off for a series explaining the why, what and how of the LTF Catalog in PowerApps. I explain the goal of the Lander Trail Foundation Searchable Database project and the limitations imposed by the environment which made PowerApps with a hosted SQL Server database the right choice. (Hint, "online" means a connection to the internet.)
Video Run Time: 9:06 Date Published: 2023-10-13

Northwind Stock Take Scan without a Key Pad
This presentation demonstrates bar code scanning without a key pad to minimize key strokes for Stock Take.
Video Run Time: 14:43 Date Published: 2023-07-29

Click-Point-Count-Save -- A More Detailed Review of Scanning SKU Codes for Northwind Stock Take
This presentation walks through Stock Take Initialization in the Access interface. Then it drills in on three features in the PowerApps interface for more detailed review.
Video Run Time: 27:16 Date Published: 2023-06-28

Click-Point-Count-Save -- Overview of Scanning SKU Codes for Northwind Stock Take
Bar code scanners allow Stock Takers to scan SKU codes on Products and count inventory on hand in a warehouse or other location, with or without an internet connection. Both Model-Driven and Canvas Apps now support offline mode, but Canvas Apps must be in a solution in order to be configured to do so. The PowerApps app in this video is a Model-Driven app.
Video Run Time: 19:10 Date Published: 2023-06-18

Click-Point-Count-Save -- Scanning SKU Codes for Northwind Stock Take
This introduction demonstrates the bar code scanner in action and provides and overview of main features.
Video Run Time: 15:40 Date Published: 2023-06-16

Date Logic in Report Grouping - I
Learn to use DatePart(), DateAdd() and DateValue() to create summary reports with grouped details
Video Run Time: 13:52 Date Published: 2019-02-10

Mike's Mobile Library - Getting Data from the Google Books API with a Custom Connector
Why type all of the details about books in my library when I can just "ask Google" to give it to me. I had to create a new, custom PowerApps connector for Mike's Mobile Library to retrieve the data, and figure out how to request and use the resulting JSON file.
Video Run Time: 24:18 Date Published: 2022-06-15

SQL Server Real DataType in a Linked Table in Access Unexpected Behavior
https://youtu.be/s9eL0MQ8_H4
Video Run Time: 2:17 Date Published: 2023-04-01

First() and Last() Versus Min() and Max()
Learn why experienced MS Access developers prefer the Min() and Max() aggregate functions over the First() and Last() aggregate functions.
Video Run Time: 12:27 Date Published: 2019-08-06

Mike's Mobile Library - Use a Custom Connector to retrieve JSON files from the Google Books API
Why type all of the details about books in my library when I can just "ask Google" to give it to me? I had to create a new, custom PowerApps connector for Mike's Mobile Library to retrieve the data, and figure out how to request and use the resulting JSON file. In Part 3, I teach you how to use it.
Video Run Time: 16:57 Date Published: 2022-06-24

Mike's Mobile Library - Capture Images for your PowerApps Application with your Camera or Your Phone
Learn how to use your camera to take pictures, store them "in the cloud" and use them in your PowerApps Application.
Video Run Time: 29:54 Date Published: 2022-03-22

My Hybrid Shopping List -- Intro to Hybrid Access/PowerApps Application concepts
What is a Hybrid Application? Why would you want one? This video is Part One of a four-part series.* Part One introduces the concept of Hybrid Access/PowerApps applications and explains why Access developers need to learn more about the hybrid approach.
Video Run Time: 14:19 Date Published: 2023-02-22

Building Relational Tables -- Adding TransactionTables I
Continue building a set of relational tables to track work on projects
Video Run Time: 22:57 Date Published: 2019-03-16

Date Logic in Report Grouping -- II
Learn to use DatePart(), DateAdd() and DateValue() to create summary reports with grouped details
Video Run Time: 18:20 Date Published: 2019-02-20

One-to-Many or Many-to-Many?
Should you design related tables as one-to-many, or should they be many-to-many?
Video Run Time: 23:49 Date Published: 2019-03-02

Access Navigation Pane: Creating Custom Categories
Learn how to create your own Custom Categories for objects in the Navigation Pane. Group objects by their function in your database application.
Video Run Time: 4:17 Date Published: 2023-02-22

My Hybrid Shopping List - AI Powered!
Riding the wave of AI excitement, I decided to give it a try in My Hybrid Shopping List App. The result was awesome, but the learning curve was pretty steep. Scan receipts from a shopping trip into the AI Model and let it capture details about the store, the items purchased, the price of each item and the total. Storing that data into a temporary table in the SQL Azure database provides a validation check for manually entered data typed in through the phone. In Part 1 I walk through the initial setup of the AI Model itself and demo its beauty in the PowerApps Shopping List app.
Video Run Time: 13:35 Date Published: 2023-03-22

UA Demo -- Preview of SSMA for Northwind
High Level Preview of Using SQL Server Migration Assistant (SSMA) to migrate tables from an existing Access relational database application to SQL Server. A fuller presentation will be offered on April 6th, 2023, in the Access Pacific User Group Meeting. https://accessusergroups.org/pacific/event/migrating-access-tables-to-sql-server-a-comparison-of-methods/
Video Run Time: 9:43 Date Published: 2023-03-20

Access Handles Date Time Extended values, right? Right? Let's Find Out.
Access has supported Date Time Extended for some time, but there are gotchas. This video demonstrates some of them.
Video Run Time: 8:23 Date Published: 2023-04-10

Mike's Mobile Library - Create a Custom Connector to retrieve JSON files from the Google Books API
High Level Preview of Using SQL Server Migration Assistant (SSMA) to migrate tables from an existing Access relational database application to SQL Server. A fuller presentation will be offered on April 6th, 2023, in the Access Pacific User Group Meeting. https://accessusergroups.org/pacific/event/migrating-access-tables-to-sql-server-a-comparison-of-methods/
Video Run Time: 18:44 Date Published: 2022-06-19

Mike's Mobile Library - Link Images to Records in a SharePoint List - Hyperlink Field
Capture images, store them to an Azure Storage Account and create a hyperlink to the image from a record in a SharePoint list in a single step.
Video Run Time: 22:42 Date Published: 2022-04-11

My Hybrid Shopping List -- PowerApps Collections
This video is Part Two of a four-part series: Part Two lets you experience the PowerApps interface, running in a browser. It explains the concept of PowerApps collections -- which can be compared to temporary, in-memory tables.
Video Run Time: 8:51 Date Published: 2023-02-24

Store Company Logo Image Files in the Image Gallery
Use the Image Gallery in Access to pre-load one or more company logo images to use in your forms and reports. Minimize database bloat by reusing the images. Avoid lost, externally saved, files. Images travel with the accdb.
Video Run Time: 3:44 Date Published: 2023-01-28

Mike's Mobile Library -- Would I do it all again?
Lessons learned from creating a PowerApps application from start to finish. The good parts as well as the less good. Access and PowerApps are great partners in the quest to create hybrid relational database applications.
Video Run Time: 23:47 Date Published: 2022-04-27

My Hybrid Shopping List -- "Interim" Collections and Persisted Tables- Revised
During final prepping of the previous version, I botched part of the video. Corrected in this version. ==== This video is Part Four of a four-part series: Part Four explores two functions needed to make the Shopping List work: -- Persisted tables in the SQL Azure database to retain the current shopping cart between sessions and -- The Patch() command for both data insertion and data update.
Video Run Time: 18:0 Date Published: 2023-03-10

Mike's Mobile Library -- Validation Feedback vs Silent Deletions
Learn how to provide user-friendly feedback to avoid silent failures and silent deletions. Although PowerApps do support notifications, they are easily missed on the screen. Some actions, when invoked by an On Select, do not allow users to confirm that they did, indeed, intend that action, leading to inadvertent data changes.
Video Run Time: 16:07 Date Published: 2022-01-13

My Hybrid Shopping List -- Filtering, Searching and Sorting PowerApps Collections
Learn how SharePoint supports Version History for PowerApps applications and for data and records in SharePoint lists. You can recover data recently deleted by accident. You can arrange to be alerted is users change data in any way. Although not full auditing capability, these tools provide a substantial level of security for your PowerApps data.
Video Run Time: 16:58 Date Published: 2023-03-01

Mike's Mobile Library -- Versions, Update Alerts and Recovering Lost Data From the Recycle Bin
Learn how SharePoint supports Version History for PowerApps applications and for data and records in SharePoint lists. You can recover data recently deleted by accident. You can arrange to be alerted is users change data in any way. Although not full auditing capability, these tools provide a substantial level of security for your PowerApps data.
Video Run Time: 30:15 Date Published: 2022-01-31

Mike's Mobile Library - Maintaining Lookup Tables
Lookup tables are esstential in an application, but setting up maintenance screens can be tedious. Should you copy/paste or duplicate existing screens for additional lookup screens?
Video Run Time: 15:57 Date Published: 2022-02-27

Mike's Mobile Library -- Pop Up Dialogs for PowerApps
Learn how to create the experience of a pop up to interact with your users. Provide feedback and confirm actions such as deletions.

The technique I used on based on this article:
https://www.spguides.com/powerapps-popup-message-box/
Video Run Time: 16:09 Date Published: 2022-01-04

Mike's Mobile Library -- Managing Global Variables and Default Values for Galleries
One of the ironies of a "Low-Code" application like PowerApps is the proliferation of "copy-paste" code. Access developers will miss the ability to consolidate reusable code into public modules--something that is not supported in PowerApps.

In this video, you'll learn the secret of using Lookup() to set a Default value for a gallery.

For an excellent description of an Access relational database application interface that manages Many-to-Many relationships, take a look at Mike Wolfe's blog: Many to Many Paired Lists

Video Run Time: 31:59 Date Published: 2022-01-03

Mike's Mobile Library -- Add Records to a Junction Table (Many-to-Many)
Learn how to use paired Galleries to select and add new records to a Junction Table in a PowerApps Application.

In an Access relational database application, we would use a main form/sub form design to accomplish this.
Video Run Time: 24:29 Date Published: 2021-12-31

Mike's Mobile Library -- One-to-Many Records Using Nested Gallaries
Learn how to display related records in a on-to-many relationship on a PowerApps screen using nested galleries.
Links to more detailed presentations on Nested Galleries. These presentations are the best explanations I've seen on the subject.
Daniel Christian on PowerApps Nested Galleries: Nested Galleries
Paul O'Flaherty on Nested Galleries: Nested Galleries
Video Run Time: 17:22 Date Published: 2021-12-22

Mike's Mobile Library -- I Was Wrong About ShowColumns() ... But I Figured It Out!
I had misunderstood how ShowColumns() -- and DropDolumns() and AddColumns() -- work when creating and using collections with SharePoint lists. It was causing me heart-burn.
I eventually took the time to do more thorough acceptance testing, discovered the error, and corrected it.
Video Run Time: 16:57 Date Published: 2021-12-16

Mike's Mobile Library -- SubmitForm() to Manage Basic Add/Edit Tasks for Publishers -Revised
Learn how to use the basic SubmitForm() action in PowerApps to add new records to a data source or edit existing records in a data source.
In this video I use the Publishers screen with a gallery and a form to manage a table of Publishers.
Update: After completing this presentation, further testing revealed that I had been using the "DropColumns" and "ShowColumns" actions inappropriately. I'll do a follow up video explaining that. Basically, a collection retains ALL of the SharePoint generated fields with or without ShowColumns() and DropColumns() .
Video Run Time: 19:46 Date Published: 2021-12-15

Mike's Mobile Library -- Variable Variable Values in Add and Edit
Learn how to conditionally set different values for variables in PowerApps depending on whether you want to Add a new record or Edit an existing record.
Video Run Time: 20:29 Date Published: 2021-12-10

Mike's Mobile Library -- Add or Edit SharePoint Lookup Fields in PowerApps
Learn how to save new or changed values in complex columns (Lookup Fields) in SharePoint lists using the Patch Command.

LookupColumn Syntax for Patch
LookupColumnName: {
     // '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference",
       Id: _Lookup ID_,
       Value: _Lookup Value_
}
Video Run Time: 30:03 Date Published: 2021-12-07

Mike's Mobile Library --OnSelect, SetVar and Patch to Edit Existing Records
Learn to use the Patch() function to edit existing records in a table using PowerApps. SetVar() creates a variable to determine whether to add a new record or edit an existing record. OnSelect() triggers the Patch() action. In this session, we develop the Patch() command code to edit existing records in a SharePoint list via PowerApps. Conditional logic in the OnSelect() action determines whether to add a new record or edit the selected record. We follow the edit branch in this session.
Video Run Time: 15:01 Date Published: 2021-11-24

Mike's Mobile Library --OnSelect, SetVar and Patch to Add New Records
Learn to use the Patch() function to add new records to a table using PowerApps. SetVar creates a variable to determine whether to add a new record or edit an existing record. OnSelect() triggers the Patch() action.
In this session, we develop the Patch() command code to add a new record to a SharePoint list via PowerApps. Conditional logic in the OnSelect() action determines whether to add a new record or edit the selected record. We follow theAdd branch in this session.
Video Run Time: 19:50 Date Published: 2021-11-15

Mike's Mobile Library -- PowerApps and SharePoint Records and Fields
Learn why Lookup Fields in SharePoint lists present a unique challenge for Access Developers working with PowerApps. Learn why they can be confusing to experienced Access Developers and how to handle them successfully in DropDown input controls on PowerApps forms and galleries.
Video Run Time: 26:51 Date Published: 2021-11-14

Mike's Mobile Library -- Filter Items in the Publications Gallery
Learn how to filter items in a PowerApps gallery control. Search and Filter using input box and dropdown controls. Plus a Naming Conundrum exposed.
Video Run Time: 12:09 Date Published: 2021-11-11

Mike's Mobile Library -- Is it "ID" or Is It "PublicationGenreID"? You decide.
SharePoint automatically creates ID fields for all lists. ID fields are similar to Access AutoNumbers in that they are automatically created for each new record, they are not reused and they must unique. You can rename them to provide better visibility to what they are used for. However, sometimes PowerApps ignores that alias and uses the original default name "ID". Be aware of this tendency and don't let it be confusing.
Video Run Time: 10:36 Date Published: 2021-11-11

Mike's Mobile Library - Populate the Publications Gallery with Book Titles
Place a gallery on the publications screen. Wire up a collection for the data source of the gallery. Link mentioned in the Video:
Creating Collections in PowerApps
Video Run Time: 18:13 Date Published: 2021-11-06

Mike's Mobile Library - Setting Up Filters for Publications
Create Input Boxes and Dropdowns to Filter records in a PowerApps Gallery. Using Dropdowns or Combo boxes: your choice.
Video Run Time: 6:51 Date Published: 2021-11-03

Mike's Mobile Library - Setting Up the Screen Header
Synchronize elements of a PowerApps screen Header using X and Y position coordinates and control width and height.
Video Run Time: 8:24 Date Published: 2021-10-31

Mike's Mobile Library - PowerApps Screens Galore
Take a brief pause from building Mike's Mobile Library. In addition to the basic blank screen, PowerApps has several templates for commonly used specialty screens. They are wired up and ready to use as soon as you insert them into your PowerApps application.
Video Run Time: 6:00 Date Published: 2021-10-30

Mike's Mobile Library - Creating a "Responsive" Layout
In this session we learn how to synchronize position of controls on a screen using X (horizontal) and Y (vertical) coordinates and width and height of each control.
Video Run Time: 14:09 Date Published: 2021-10-29

Mike's Mobile Library - The Start Screen
In today's presentation, we set up the Main Menu, or Start Screen, by copying the Start Screen objects from the Production version and changing the theme colors from Production blue to Development Orange.
Video Run Time: 10:28 Date Published: 2021-10-28

Mike's Mobile Library - Connect Data to the PowerApps Application
In this presentation, we connect our Development version of Mike's Mobile Library to the SharePoint lists in the Development subsite. We also connect to the Azure Blob Storage Location where our cover photos are stored.
Link to the Azure Blob Storage Account Video:
Link to Azure Blob Storage Accounts
Link to setting up a PowerApps App to use SharePoint lists:
Setting up PowerApps to use SharePoint lists
Note: A lot has changed in 3 years, but this video is still a good starting point for using SharePoint lists.
Video Run Time: 8:29 Date Published: 2021-10-26

Mike's Mobile Library - Create the Options Screen and OnStart Event
In today's presentation, we start setting up our PowerApps application in Development mode by creating and populating the options screen and copying the OnStart code into the new Dev copy of the application. We also get to preview an entirely NEW feature in PowerApps. the StartScreen option.
Read about it here: The PowerApps Startup Screen
Video Run Time: 24:31 Date Published: 2021-10-25

Mike's Mobile Library - Set up a Development Environment in PowerApps
Let's build a PowerApps application to manage the catalog for a personal library! On Day 4, we begin by preparing to set up a Development version of the PowerApps Application.
Video Run Time: 27.37 Date Published: 2021-10-19

Mike's Mobile Library - The SharePoint Lists for Data
Let's build a PowerApps application to manage the catalog for a personal library. On Day 3, we review the Tables (SharePoint Lists) behind the application.
Video Run Time: 20:47 Date Published: 2021-10-17

Mike's Mobile Library - The PowerApps Interface
Let's build a PowerApps application to manage the catalog for a personal library! On Day 2, we review the PowerApps interface.
Video Run Time: 20:16 Date Published: 2021-10-17

Mike's Mobile Library - The Access Interface
Let's convert an existing MS Access relational database application to a PowerApps application! Mike's Mobile Library is a catalog of books, DVDs and periodicals and the authors or creators who wrote and produced them. It manages transfers in and out of the library via purchase or lending. Day one is an overview of the environment and a review of the existing desktop Access front end.
Video Run Time: 27:50 Date Published: 2021-10-14

PowerApps 4 Access Devs --10, 000 Records -- 2nd Look
In a second look at the process of loading 10,000 records into a PowerApps application, we consider the positive impact on performance increasing data row limits from 500 to 2,000 records and the negative impact on performance of the presence of Lookup fields in a gallery. We introduce the Patch() function to add add new records to a table. We look at the use of the PowerApps StartUp event to set the value of global variables. A list of resources used for this application is available in the description of the initial video.
Video Run Time: 29:29 Date Published: 2021-09-12

PowerApps 4 Access Devs 10,000 Records -- Oops!
I identified and corrected a logic bug (wrong math approach) which appeared during repeated testing. Funny how that works, eh? I also changed the workflow for the application after reconsidering the impact on performance that comes from repeatedly (and probably unnecessarily) re-populating a large collection. Note: On my smart phone, startup takes as little as two or three seconds. I think the difference is partly due to the heavy processing load in the development environment which is also competing with recording software for resources.
Video Run Time: 17:48 Date Published: 2021-09-15

PowerApps 4 Access Devs - Load 10,000 Records
10,000 Records in a Database Application? Really? Access developers work with large recordsets, sometimes hundreds of thousands of records, so the idea of being limited to 500 (or even 2,000) seems unworkable. Fear not, there is a way to load thousands and thousands of records into your PowerApps application. This video shows you how. It also shows you why that's actually not a good idea.
Video Run Time: 35:09 Date Published: 2021-09-10

Formatting Dates for Display in MS Access
Use MS Access Format() expressions to display dates and dates with times to your users in the interface.
Video Run Time: 08:24 Date Published: 2019-08-03

So You Want to Build a Microsoft Acccess Database
MS Access is a great tool for bulding relational database applications, but you have to know and follow sound design principles to the underlying considerations on which a good Relational Database Application must be based
Video Run Time: 15:46 Date Published: 2019-02-14

Creating Your First Table in a Microsoft Access Relational Database
Step by Step Process of Creating a table in an Access Relational Database. What fields need to be included and why.
Video Run Time: 27:51 Date Published: 2019-02-14

Creating Your Second table in a Microsoft Access Relational Data
Adding a related table to your MS Access Relational Database requires careful thought. Properly defined Primary and Foreign Keys make the second table work with the first.
Video Run Time: 30:43 Date Published: 2019-02-17

Reconciling Business Rules and Normalization
Normalization, or or the rules for creating a set of relational tables, is only part of the process. You also need to reconcile good table design with the business requirements that govern your database application. There may be more than one way to go, and determining which way will best support the business rules is a big part of doing a good job.
Video Run Time: 23:16 Date Published: 2019-02-26

One-to-Many or Many-to-Many -- and Why Part II
Microsft Access Relational Databases capture information about relationships between two or more entities: People and Email Addresses, Classes and Students, Invoices and Line Items on the Invoices, Meals and Food Items in the Meals. Some of those relationships are one-to-many. Some of those relationships are many-to-many. In this video, you'll learn about both types, and you'll see how to create appropriate related tables for each type
Video Run Time: 27:40 Date Published: 2019-03-05

Relational Tables -- Summary and Review
A solid, stable, relational database exhibits several qualities that depend on a good foundation of sound table design.
Video Run Time: 21:18 Date Published: 2019-03-05

Calculated Values in Queries and on Forms
Learn to use Expressions to calculate values for display on Forms. Calculated values can also be used for sorting and filtering in queries.
Video Run Time: 18:49 Date Published: 2019-02-12

Performance Analysis Using Date Logic and Conditional Formatting
Performance Analysis Reporting in Access Using Date Logic and Conditional Formatting to Highlight Results
Video Run Time: 20:12 Date Published: 2019-01-22

Date and Time Gotchas in Access Reports and Queries
Two ways in which unwary Access users can create misleading or inappropriate reports because of failure to account for how Access actually stores dates with times.
Video Run Time: 20:21 Date Published: 2019-01-16

Date Formatting and Filtering in Access Reports Filter Criteria
Using tempvars to set criteria for date range in an Access Report
Video Run Time: 18:50 Date Published: 2019-01-15

Default Dates and Date Formatting & Grouping in Access Reports
How to Use Default values for dates, grouping and sorting on Formatted Dates
Video Run Time: 17:02 Date Published: 2019-01-15

Date Formatting for Access Form Filters
Using Custom Date Formats and Date Logic to filter subforms and to improve appearance of the data displayed.
Video Run Time: 25:39 Date Published: 2019-01-10

Date Formatting in Access Forms
Introduction to Display Formatting for Access Dates and Times in Forms How to use custom formatting to improve appearance and conserve space on a crowded form.
Video Run Time: 14:07 Date Published: 2019-01-07

Date Formatting In Access Tables I
MS Access stores dates internally as numbers. It's up to the developer to format those dates properly for display.
Video Run Time: 14:37 Date Published: 2017-01-29

Date Formatting in Access Tables II
The impact of Display Formats on Date/Time Fields In Access
Video Run Time: 10:00 Date Published: 2018-12-18

Date Formatting in Access Tables III
A closer look at the display possibilities available for date/time fields in tables
Video Run Time: 17:13 Date Published: 2018-12-28

Editing Office Ribbons with a Third Party tool
The steps required to modify a Custom Access ribbon using the IDBE Ribbon Creator Tool
Video Run Time: 15:16 Date Published: 2018-05-15

GPC's Fully Functional Sample Access Database Applications

"Contains" Search in Multiple Fields

*New -- May, 10, 2020
A frequent request in Access forums is a search function that works like the "contains" searches common in web sites. Instead of an exact match, or a match beginning with the first letter of a word, a "contains" search returns all instances of a field where the search term occurs anywhere in the string.
For example, a "contains" search for "gus" would return names containing those three letters: First names like "Augustus" or "Gustav" as well as Last names like "Anthrogus" and so on.
I achieve this result by using TempVars to filter on multiple fields. This demo shows you how to implement the query and set the tempvars.
*This version supports both 32 bit and 64 bit Access.*

------------------------------------------------------------------------------------

Animated GIF for "Please Wait" Message

*New -- May, 12, 2020

Sometimes I learn something while trying to answer questions on an online Access forum. This was one such occasion. I really appreciate the poster's persistence in pushing me to a solution.
The original request was to display an animated GIF on a form in Access. My first thought was, unfortunately, "That's a bad idea." However, after an exchange of ideas with the original poster, I realized this could be a pretty good idea and one worth pursuing. The result is this demo.
An animated GIF can be displayed in a web browswer control. That means the image file must be stored in a location to which all copies of the Access Front End accdb have permissions. Or copies of it can be saved to the same folder where that Access FE accdb resides on each user's computer. Either way, the animated GIF can be displayed at the beginning of a long-running process and hidden again when that process completes.
I will leave it to you to try out other approaches to implementing this feature, such as dynamically loading different animated GIFs for different processes, or changing the size and location of the web browser control to maximize use of form spacing.
*This version supports both 32 bit and 64 bit Access.*

------------------------------------------------------------------------------------

Automatically Find and Link to CSV files

*New -- April 3, 2021

Search a specified Folder for .csv and .xls and .xlsx files. List them in your Access relational database application. Link to them with the click of a button.

*This version supports both 32 bit and 64 bit Access.*

------------------------------------------------------------------------------------

Cancel Report on No Data without Error Message

*New --May 2, 2020
*Validated for 64 bit version of MS Access --May 4, 2020
When a report opens without data, you can use the On No Data event to cancel the report and issue custom messages or responses.
However that cancellation will send error 2501 back to the event which called the "Report Open" event. That means you must also handle that returned error from the calling procedure in the calling form as well.
This demo illustrates how to handle it.

------------------------------------------------------------------------------------

Calls & Meetings--Contact Manager Database

*Updated -- April 14 2020

Contact Manager is a completely revised and updated version of an application I built for a client several years ago. It tracks:

  • Companies with whom you have contacts.
  • Individual Contacts at those companies, with contact information.
  • Calls to your contacts.
  • Meetings with your contacts.
  • In this version, many outdated methods were replaced with more flexible methods, primarily based on TempVars and IIF() functions to eliminate the need for dynamic sql or hard-coded forms references. Also, some unnecessary restrictions on data entry were modified or removed.
    You might use this basic version as a "starter" for your own purposes. Like all of my demos, it can be expanded. Feel free to make any changes needed to suit your situation. However, note that I can't be responsible for any use you make of the application.
    Reports were improved and simplified.
    **Compatible with 32 bit and 64 bit Access.

    ------------------------------------------------------------------------------------

    Create a Dynamic Menu

    *Updated -- March 18, 2021
    A Proof of Concept I created in 2004 for an article in the old Smart Access magazine. The Splash form re-creates a set of command buttons on the main menu form each time the mdb or accdb is opened. Like the Ribbon that was introduced a few years later, the menu items are stored in a table from which the menu is re-built.
    *Added accdb compatible with 32 bit Access and 64 bit Access. Updated some code.

    ------------------------------------------------------------------------------------

    Create a Membership Directory with images of each person

    *New -- February, 2021
    Including images in forms and reports in Access requires very little design and programming beyond adding image control(s) and binding the appropriate image to them. This can be done either by making the location of the image file the value in a field in a table, or by calling the images up dynamically. This demo illustrates the latter approach.
    Although Access does support storing images internally, that causes file bloat. Therefore, storing images externally and linking to them is highly recommended. Therefore, this demo uses a subfolder to store images selected and used for one or more members.
    Originally designed from a "rescue" project I completed for a friend, I recently dusted it off and cleaned it up for this demo.
    Download and unZIP the sample files. Make sure the images subfolder is created during that process.

    ------------------------------------------------------------------------------------

    GPC's Work Tracking Demo

    *Updated -- October 29, 2016
    Download the full, working accdb or mdb version of GPC's Work Tracking Demo, with the VBA that makes it work. I originally built this tool for myself, to track time and efforts on projects for my clients. Over time I expanded it to include some rudimentary Project Management features,such as defining the deliverables for a project, scheduling major milestones, and prioritizing tasks. It's a little more than a timesheet and a little less than a project management tool. You may either use Work Tracking as-is or modify it to suit your needs.The current backend DB for my working version in on SQL Azure, but this one still works well as a starter.
    NOTE: The "accdb" version is tested and works in Access 2007 through Access 2016, both 32 bit and 64 bit version.
    I recent added code to track and record all changes to data in this version.

    It creates an audit of data changes by user who made the change and the date and time on which the change was made.
    Please report any bugs in this newest version, so I can fix them.
    The change history function is NOT included in the mdb version.
    Like all of my samples and demos, this one is offered "As Is" with no guarantees of fitness for any particular purpose. Use it or modify at your own risk and with your own effort.
    This ZIP file contains both mdb (tested in A2003) and accdb (tested in A2007 through A2016 and A2016 64 bit) versions. Only the accdb version contains the Change History Function.

    ------------------------------------------------------------------------------------

    GPC Curated Links to Normalization Articles
    I believe it's important that you understand what relational database applications are and how they work. The most important principal is that Relational Databases are NOT just super-charged spreadsheets. While there are many good references on the web to choose from, I've limited the list to these favorites.

    Also check out Links to Other Access Resources page

    Autonumbers - What They Are / Are Not

    *Updated -- April 24, 2004
    Autonumbers White Paper at Utter Access

    ------------------------------------------------------------------------------------

    Roger Carlson's Access Blog

    *New -- March 7, 2011
    Roger Carlson's Access Blog on Repeated Columns in tables.

    ------------------------------------------------------------------------------------

    Database planning tutorial Part I

    *New -- September 28, 2003
    The late Glenn Lloyd's Tutorial at Utter Access

    ------------------------------------------------------------------------------------

    Database planning tutorial Part II

    *New -- October 25, 2003
    The late Glenn Lloyd's Tutorial at Utter Access

    ------------------------------------------------------------------------------------

    Jerry Dennison's FAQ on Normalization

    *New -- April 8, 2003
    Jerry Dennison's FAQ at Utter Access

    ------------------------------------------------------------------------------------

    Glenn Lloyd's FAQ on Design Strategies

    *New -- October 25, 2003
    The late Glenn Lloyd's FAQ at Utter Access

    ------------------------------------------------------------------------------------

    Grover Park George's PDF on Normalization

    *Updated -- May 18, 2019
    A practical, non-technical explanation of Normalization for Relational Database Applications.

    ------------------------------------------------------------------------------------

    MSKB 283878: Description of the database normalization basics

    *Updated -- May 10, 2017
    Microsoft Article on Relational Database Normalization basics.

    ------------------------------------------------------------------------------------

    Noah's FAQ on Normalization

    *New -- December 8, 2003
    Noah's FAQ at Utter Access

    ------------------------------------------------------------------------------------

    Primary Keys - Natural vs Surrogate

    *New -- February 13, 2005
    Primary Keys - Natural vs Surrogate at Utter Access

    ------------------------------------------------------------------------------------

    Danny Seager's FAQ on Reserved Words

    *Updated -- September 11, 2004
    Danny Seager's FAQ on Reserved Words at Utter Access

    ------------------------------------------------------------------------------------

    Presentation and sample db for Seattle Access User Group

    *New -- August 9, 2012
    My Seattle Access User Group Presentation and sample db from August, 2012.

    ------------------------------------------------------------------------------------

    ©Copyright 2010- Grover Park Consulting. All Rights Reserved.
    Free Resources and Full Working Demos for Microsoft Access Database Design and Development