What Most People Miss About Excel Pulling Data from Access

Why does your Excel file show #VALUE! when you try to refresh the Access link? Why does the connection vanish after saving and reopening? Why does it work on your laptop but break when shared with Finance?

The answer is almost always the same: Excel isn’t failing — the connection string is lying. It looks right. It tests successfully. But it’s pointing to a copy of the Access file you don’t control — or worse, a path that only exists on your desktop.

The Problem

You’ve got an Access database named sales_tracker.accdb, sitting in C:\Users\Sarah\Documents\DB\. Your team uses it daily to log orders, inventory changes, and customer notes. You build a dashboard in Excel (Sheet1) pulling sales totals by region. Everything works fine — until you email the workbook to Leo in Procurement.

He opens it, clicks Data > Refresh All, and gets this:

"The Microsoft Access database engine could not find the object 'Orders'. Make sure the object exists and that you spell its name and the path name correctly."

That error isn’t about missing tables. It’s about broken trust between Excel and Access — specifically, how Excel stores where the .accdb lives.

RegionQ1 SalesQ2 SalesLast Updated
North America$124,760#REF!2024-02-28
EMEA$89,140#VALUE!2024-03-01
APAC$112,350#N/A2024-03-02
LatAm$67,820#REF!2024-02-29
Global Total$394,070#VALUE!2024-03-02

Notice how Q2 columns collapse. That’s not bad formulas — those cells are linked to an external query. And once the path breaks, Excel stops trying. It doesn’t warn you. It just returns errors silently.

The Solution

The fix isn’t more complex — it’s more precise. You need to replace the hardcoded local path with a relative one — and force Excel to re-evaluate the source every time. Here’s how, step-by-step:

  1. Go to Data > Queries & Connections (Alt+A, Q). In the pane, right-click your query (e.g., "Orders_by_Region") and select Edit.
  2. In Power Query Editor, go to Home > Advanced Editor (Alt+H, E). Look for the line starting with Source = . It’ll look like this:
    Source = Access.Database("C:\Users\Sarah\Documents\DB\sales_tracker.accdb", [CreateNavigationProperties=true])
  3. Replace the full path with a relative one using Excel.CurrentWorkbook() trick. Paste this instead:
    Source = Access.Database(File.Contents("sales_tracker.accdb"), [CreateNavigationProperties=true])
  4. Click Done. Then go to File > Options > Trust Center > Trust Center Settings > External Content and set Enable all Data Connections (required for File.Contents).
  5. Save the Excel file in the same folder as sales_tracker.accdb. Now when Leo opens it, Excel finds the .accdb by name — not by C:\ drive location.

The beauty of this approach is that File.Contents() treats the Access file like any other binary asset — no registry lookups, no user profile dependencies. It just reads the file beside the workbook. What makes this elegant is that it works even if the folder moves — as long as both files stay together.

RegionQ1 SalesQ2 SalesLast Updated
North America$124,760$138,9202024-03-15
EMEA$89,140$94,3702024-03-15
APAC$112,350$119,0802024-03-15
LatAm$67,820$71,5402024-03-15
Global Total$394,070$423,9102024-03-15

Now Q2 values populate cleanly — and refresh works on any machine with both files present. Bonus: If you rename the Access file to sales_v2.accdb, just update the name inside File.Contents("...") once — no re-linking required.

Going Further

You’re not stuck with static pulls. Once the link is reliable, you can add layers:

  • Parameterized queries: Create a cell (say, F1) with a region name like "EMEA". In Power Query, go to Manage Parameters > New Parameter, then reference it in your SQL statement: SELECT * FROM Orders WHERE Region = "&RegionParam&".
  • Incremental refresh: Add a column in Access called LastModified (DateTime). In Power Query, filter rows where [LastModified] >= DateTime.LocalNow() - #duration(7,0,0,0) — pulls only last week’s changes.
  • Merge with Excel tables: Have a local Excel table of sales reps (A1:C25) and merge it into your Access query on RepID. No VLOOKUP needed — just Home > Merge Queries and choose Join Kind = Left Outer.
  • Auto-refresh on open: Right-click the query in Queries & Connections, choose Properties, check Refresh data when opening the file. Warning: Only do this if the Access file is always available.

Surprising tip: You can embed the Access file directly into Excel — yes, really. Save the .accdb as a binary object (Insert > Object > Create from File > Browse), then use Binary.Buffer() in Power Query to read it. Not recommended for large DBs, but flawless for <5MB files under version control.

When NOT to Use This

This method shines for departmental reporting — but fails catastrophically in these cases:

  • Shared network drives with permission splits: If Finance has Read/Write to \\server\db\ but Marketing only has Read, Excel will crash on their machines — even with correct paths. Use ODBC with stored credentials instead.
  • Access files over 250 MB: Excel chokes loading them via File.Contents(). Export key tables to CSV first, or switch to SQL Server Express.
  • Split databases (front-end/back-end): If your Access file links to another .accdb for tables, Excel sees only the front-end forms/macros — not the real data. You must point to the back-end .accdb directly.
  • Access 2003 (.mdb) with Unicode fields: Older engines misread UTF-8 characters. Convert to .accdb or pre-process with a VBA script that exports clean CSV.

If your team uses SharePoint or Teams, skip Access entirely — publish the tables to Excel Online via Export > SharePoint List, then connect Excel to that list. It’s slower to set up, but zero path headaches.

Keyboard Shortcuts

ActionShortcutNotes
Open Queries & Connections paneAlt + A, QFastest way to manage all external links
Open Advanced Editor in Power QueryAlt + H, EEssential for editing M code directly
Refresh all queriesAlt + A, R, ADoesn’t prompt — runs silently
Refresh active worksheet onlyAlt + A, R, WSafer when some queries shouldn’t auto-refresh
Open Connection PropertiesAlt + A, C, PWhere you toggle “Refresh on Open”
Sarah Mitchell

Sarah Mitchell

Sarah has 12 years of experience covering Microsoft 365 productivity tools and enterprise software workflows. She specializes in Excel automation and SharePoint integration.