What Most People Miss About Connecting Microsoft SQL Server to Excel

Why does Excel show ‘Data Source Not Found’ when you paste your perfectly valid connection string? Why does the same query work in SSMS but return zero rows in Power Query? Why does it connect on your laptop but fail silently on the shared workstation?

The answer isn’t permissions, drivers, or even your SQL credentials—it’s that Excel doesn’t actually connect to SQL Server the way you think it does. It layers three distinct protocols (ODBC, OLE DB, and native Power Query), and most people pick the wrong one for their environment—then waste hours troubleshooting the wrong layer.

The Setup

We’ll use a real sales operations dataset from Acme Corp’s internal SQL Server instance (ACMESVR03\PROD). This table lives in [SalesDB].[dbo].[QuarterlyOrders] and contains live order data synced nightly. No dummy data—this is what Sarah Chen in Finance pulls every Thursday at 9:15 a.m. before her team sync.

OrderIDCustomerNameProductCodeAmountOrderDateRegion
ORD-78241Sarah ChenPRM-2201$24,5002024-03-12APAC
ORD-78242James RiosBAS-1988$8,9502024-03-14EMEA
ORD-78243Lena ParkPRM-2201$31,2002024-03-15AMER
ORD-78244David MwangiBAS-1988$12,6002024-03-16APAC
ORD-78245Nina DuboisPRM-2201$45,2002024-03-17EMEA
ORD-78246Tariq HassanADV-3055$68,9002024-03-18AMER
ORD-78247Elena RossiBAS-1988$9,3002024-03-19EMEA
ORD-78248Kenji TanakaPRM-2201$27,4002024-03-20APAC

The Challenge

You need live access to this data—but not via copy-paste. Finance wants refreshable reports. Sales needs filters by Region and OrderDate. And IT says “no third-party tools.” That means no SSIS, no Python scripts, no Power BI Desktop. Just Excel—and whatever’s built-in.

Here’s what trips people up: They click Data > Get Data > From Database > From SQL Server Database, enter ACMESVR03\PROD, then hit OK—and get a blank dialog. Or worse: they get past authentication only to see 0 rows, even though SELECT TOP 10 * FROM [QuarterlyOrders] returns results in SSMS instantly.

The root cause? Excel defaults to Windows Authentication—and your domain account has access to the server, but not to the SalesDB database specifically. Or you’re on a non-domain machine (like a contractor’s laptop) and need SQL Auth—but the wizard hides the option unless you edit the connection string manually.

Walking Through It

We’ll use Power Query (the most reliable method). Start fresh: open a new workbook. Go to Data > Get Data > From Database > From SQL Server Database. Don’t type anything yet.

Now—here’s the counterintuitive part: Click Cancel. Yes, cancel the dialog. Then press Alt + D + B. This opens the legacy Existing Connections dialog. Click Add Connection > SQL Server.

You’ll now see a field labeled Server name. Enter ACMESVR03\PROD. Below that, check Use database name and type SalesDB. Now click Advanced. Paste this into the connection string box:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SalesDB;Data Source=ACMESVR03\PROD;

If you need SQL auth instead, replace the Integrated Security=SSPI part with User ID=sqluser;Password=MyP@ssw0rd1!. Then click OK → OK → Load.

StepActionResultShortcut
1Cancel initial wizard, press Alt+D+BOpens legacy connection managerAlt+D+B
2Add new SQL Server connection, set Initial Catalog=SalesDBPrevents 'database not found' errors
3Click Advanced, paste full connection stringEnables SQL Auth and bypasses UI limitations
4Click OK twice, then LoadData appears in Sheet1, starting at A1Enter

The Result

After loading, you’ll see all 8 rows in columns A–F, exactly matching the source table. The connection is saved. To refresh later: right-click any cell in the data range → Refresh. Or press Alt + F5.

This isn’t static copy-paste. It’s a live link. If Sarah Chen updates ORD-78241’s Amount to $25,100 in SQL Server tonight, tomorrow morning’s refresh pulls that change automatically. No re-running queries. No manual exports.

OrderIDCustomerNameProductCodeAmountOrderDateRegion
ORD-78241Sarah ChenPRM-2201$24,5002024-03-12APAC
ORD-78242James RiosBAS-1988$8,9502024-03-14EMEA
ORD-78243Lena ParkPRM-2201$31,2002024-03-15AMER
ORD-78244David MwangiBAS-1988$12,6002024-03-16APAC
ORD-78245Nina DuboisPRM-2201$45,2002024-03-17EMEA
ORD-78246Tariq HassanADV-3055$68,9002024-03-18AMER
ORD-78247Elena RossiBAS-1988$9,3002024-03-19EMEA
ORD-78248Kenji TanakaPRM-2201$27,4002024-03-20APAC

What Could Go Wrong

Mistake #1: Using the new wizard without specifying Initial Catalog
Excel tries to list databases—but if your login lacks VIEW ANY DATABASE permission (common for production accounts), it shows an empty dropdown or throws “Cannot connect to server.” You’ll stare at a blank dialog for 12 minutes before giving up.

Mistake #2: Assuming Windows Auth works everywhere
It works on your domain-joined desktop. But if you open the same file on a Mac (via Excel Online), or on a vendor’s machine outside the firewall, Windows Auth fails silently—and Excel doesn’t tell you why. You just get zero rows.

Mistake #3: Forgetting to enable TCP/IP in SQL Server Configuration Manager
This isn’t an Excel issue—but if your DBA disabled TCP/IP (leaving only Named Pipes), then ACMESVR03\PROD won’t respond to Excel’s default OLE DB provider. The error message? “A network-related or instance-specific error…”—which sends you down a DNS rabbit hole for hours.

Next step: Open Excel right now and try Alt + D + B. Paste your server name, add Initial Catalog=YourDBName to the connection string, and test with a simple SELECT TOP 5 * FROM sys.tables. If that loads, you’ve got the foundation. Everything else is filtering and formatting.

Lisa Anderson

Lisa Anderson

Lisa is a certified Microsoft trainer who writes step-by-step guides for Power Automate