Adding additional fields to a linked excel table in Access where the data in those additional fields is retained as the Excel data source is updated

Anonymous
2025-01-22T15:48:43+00:00

Hello all,

I am looking to understand how best to link an excel spreadsheet (that contains a list of courses) to Access and where I can add additional 'comment' type columns to that linked data and eventually query it all or view bits of it in a form.

When the linked excel spreadsheet is updated (Usually daily i.e. some courses are removed from the list, some added, most remain and data for each course may change), I would like the additional columns that I have added in Access (and the comments that have been added in those columns) to remain 'attached' to courses where those courses are still present in the linked data as it changes.

I've tried to do this in Excel with a self-referencing power query and managed to get this to work in a fashion, but as the number of columns I am using is 90+, hiding and unhiding columns after refreshing the data, breaks the query so I'm reverting back to Access to see if there is/is an easier way to do this.

I appreciate any suggestions or pointers :-)

Thanks,

C

Microsoft 365 and Office | Access | For education | Other

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
{count} votes

11 answers

Sort by: Most helpful
  1. Duane Hookom 26,555 Reputation points Volunteer Moderator
    2025-01-22T16:06:32+00:00

    90+ columns suggests an unnormalized application. You are possibly still thinking “spreadsheet” when you need to model your data in a relational solution.

    You can create a table in Access that has a column that matches a unique value in your linked Excel table. Your Access table could be updated as a subform on a from bound to your Excel table.

    Bottom line, we need more information about your existing table/fields to provide more quality assistance.

    0 comments No comments
  2. Anonymous
    2025-01-22T17:14:09+00:00

    Hi Duane,

    Thanks for responding and I will try and clarify further.

    The data I am working with, is exported from a course management system in either excel, csv or xml - I have chosen excel format in this instance as I am familiar with excel and that's what Access seems to link to, but I'm not wed to that format of course :-)

    Each row of the exported spreadsheet contains a course with a unique course ID, along with an additional 30+ columns each relating to other course information such as start/end dates, tutor etc. Something like this:

    I would like to link the spreadsheet (which is updated daily) to Access but also add some additional 'fields' where I can 'check off' that certain activities for each course has been done i.e. Has the contract been paid? Has the venue been booked? and so on, ending up with something like this:

    When the excel data is refreshed each day (Downloaded, Copy and paste job for now) I would like Access to update with any new courses/removed courses but still retain the additional fields I have added in (as well as the data that has been added to those fields) for courses that still remain in the linked data. Something like this:

    As each course goes through different stages (planning, live, completion) there are a number of different 'checks' for each stage and that is where the 90+ columns (or fields in Access) will come in. I had in mind that I would bring the data into Access and then link that data to three different tables within Access, each containing the various checks (fields) that were required for each stage and that I could then populate. I'd then be able to explore queries and reports.

    Hope that is a bit clearer?

    Thanks!

    C

    0 comments No comments
  3. George Hepworth 22,220 Reputation points Volunteer Moderator
    2025-01-22T17:43:16+00:00

    As Duane pointed out, Access is very different from Excel. So different that users moving from Excel to Access can find themselves struggling to unlearn a lot of Excel principles and learning new relational database principles in order to make the transition.

    Ironically, in fact, the more you know Excel, the harder it is to make the transition.

    Take a break from trying to force the current tables to work in a relational database application.

    Instead, invest time in learning how relational database applications, like those created in Access, work.

    Search topics on Database Normalization. Search topics on converting Excel spreadsheets to properly designed database tables.

    For starters, here are a few references.

    https://rogersaccessblog.blogspot.com/2017/03/what-is-normalization-part-i.htmlhttps://support.microsoft.com/en-us/office/move-data-from-excel-to-access-90c35a40-bcc3-46d9-aa7f-4106f78850b4

    https://youtu.be/GFQaEYEc8_8?si=rjuGgwmBzgfsGEEN

    0 comments No comments
  4. Duane Hookom 26,555 Reputation points Volunteer Moderator
    2025-01-22T17:57:53+00:00

    In a relational database, each of the "different stages" would create a new record in a table of course stages. This would easily allow for the modification of stages in the future. A number of years decades ago, I created an application that tracked refinancing tasks. Rather than adding each task as a field/column, I created a table of all possible tasks and a junction table that related the tasks to the refinance record. This allowed my client to add tasks as needed without a contract programmer to modify tables, forms, reports, etc.

    I'm sure George's link will explain this.

    0 comments No comments
  5. ScottGem 68,775 Reputation points Volunteer Moderator
    2025-01-22T18:00:13+00:00

    Is the CourseID unique? Or does the same CourseID exist with different dates venues, etc.? For example: Can there be multiple records for A12345, Fred's Flowers with different start date and venues?

    If not, then I would NOT add fields. I would link the spreadsheet and then add tables in a relational manner that contain the additional info you want to track. In addition having fields for the "checks" is not the way to go. Relational tables should be tall and thin, not wide. For example, you have a table like this

    tblCheckStatus

    CheckStatusID (PK autonumber)

    CheckTypeID (FK)

    Status

    So you have a record, linked back to the Course, that contains all the additional info you want to track.

    0 comments No comments