Current Microsoft MVP Awardees

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


GPC's YouTube Training Video Library

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

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

SQL Server Real DataType in a Linked Table in Access Unexpected Behavior
https://youtu.be/s9eL0MQ8_H4
Video Run Time: 2:17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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 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

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 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 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 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 Formatting in Access Tables II
The impact of Display Formats on Date/Time Fields In Access
Video Run Time: 10:00

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

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

Singing Cowboys
How to manage a Many-to-Many Relationship using a main form/subform design. Singing Cowboys is a Web Application developed with MS Access 2010 and published to SharePoint 2010.
Video Run Time: 5:00

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.

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

    Dish Antenna Installations Database Installations

    *Updated -- August 9, 2012
    Created to staunch the paperwork flood in an Dish Network Installer's business, Installations is a fully functional MS Access database in the accdb format. Try it out, "as is" on your own PC for free. It was custom-built, so it will not be of direct use to you without some modifications to fit your business rules. The instructions are included.
    To try it out, create a folder for it on your hard-drive and save the compressed file (installations.zip) to that folder. Double-click on the "ZIP" file to open and extract the files into that folder. Double-click on "Installations.mdb" to launch the 2003 version of the application, or on "Installations.accdb" to launch the 2010 version.

    *The ZIP file contains Access 2003 (mdb) and 2010-2016 versions (accdb).

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

    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.

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

    Crystal Long's ACCESS Basics for Programming

    *New -- July 21, 2006
    ACCESS Basics for Programming at Utter Access

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

    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.

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

    Put Stuff Where It Belongs

    *New -- November 12, 2013
    Jack Leach's Whitepaper on Table Design

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

    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