MS Access Salesforce Connector

In this article you will learn how to integrate Salesforce data to MS Access without coding in just a few clicks (live / bi-directional connection to Salesforce). Salesforce Connector can be used to extract/load large amount of data from/in without any programming. You can use simple Table mode or Query mode with full SOQL query language support ( Object Query Language)..

Using Salesforce Connector you will be able to connect, read, and write data from within MS Access. Follow the steps below to see how we would accomplish that.

Download  Help File  Buy 

Create ODBC Data Source (DSN) based on ZappySys Salesforce Driver

To get data from Salesforce using MS Access we first need to create a DSN (Data Source) which will access data from Salesforce. We will later be able to read data using MS Access. Perform these steps:

  1. Install ZappySys ODBC PowerPack.

  2. Open ODBC Data Sources (x64):
    Open ODBC Data Source

  3. Create a User Data Source (User DSN) based on ZappySys Salesforce Driver

    ZappySys Salesforce Driver
    Create new System DSN for ZappySys Salesforce Driver
    You should create a System DSN (instead of a User DSN) if the client application is launched under a Windows System Account, e.g. as a Windows Service. If the client application is 32-bit (x86) running with a System DSN, use ODBC Data Sources (32-bit) instead of the 64-bit version.
  4. Now, we need SalesForce Connection. Lets create it. ODBC SalesForce Driver - Create Connection

  5. Now, When you see DSN Config Editor with zappysys logo first thing you need to do is change default DSN Name at the top and Click on Preview Tab, Select Table from Tables Dropdown or you can enter or modify a SOQL query and click on Preview Data.
    This example shows how to write simple SOQL query (Salesforce Object Query Language). It uses WHERE clause. For more SOQL Queries click here.
    SOQL is similar to database SQL query language but much simpler and many features you use in database query may not be supported in SOQL (Such as JOIN clause not supported). But you can use following Queries for Insert, Update, Delete and Upsert(Update or Insert record if not found).

    SELECT * FROM Account WHERE Name like '%Oil%'
    ZappySys ODBC Driver - Select Table and Preview Data
  6. Click OK to finish creating the data source

Read data in Microsoft Access from the ODBC data source

  1. First of all, open MS Access and create a new MS Access database.

  2. In the next step, start loading ODBC data source we created: Load ODBC data source

  3. Then click next until data source selection window appears. Select the data source we created in one of the previous steps and hit OK:

    DSN selection

  4. Continue with tables and views selection. You can extract multiple tables or views:
    DSN Table Selection

  5. Finally, wait while data is being loaded and once done you should see a similar view: In Access DSN Data Loaded

Using Linked Table for Live Data (Slow)

Linked tables in Microsoft Access are crucial for online databases because they enable real-time access to centralized data, support scalability, facilitate collaboration, enhance data security, ease maintenance tasks, and allow integration with external systems. They provide a flexible and efficient way to work with data stored in online databases, promoting cross-platform compatibility and reducing the need for data duplication.

  1. Real-Time Data Access:
    Access can interact directly with live data in online databases, ensuring that users always work with the most up-to-date information.
  2. Centralized Data Management:
    Online databases serve as a centralized repository, enabling efficient management of data from various locations.
  3. Ease of Maintenance:
    Updates or modifications to the online database structure are automatically reflected in Access, streamlining maintenance tasks.
  4. Adaptability to Changing Requirements:
    Linked tables provide flexibility, allowing easy adaptation to changing data storage needs or migration to different online database systems.

Let's create the linked table.

  1. Launch Microsoft Access and open the database where you want to create the linked table.

  2. Go to the "External Data" tab on the Ribbon. >> "New Data Source" >> "From Other Sources" >> "ODBC Database" Load ODBC data source

  3. Select the option "Link to Data Source by creating a linked table: Load ODBC data source

  4. Continue by clicking 'Next' until the Data Source Selection window appears. Navigate to the Machine Data Source tab and select the desired data source established in one of the earlier steps. Click 'OK' to confirm your selection.

    DSN selection

  5. Proceed to the selection of Tables and Views. You have the option to extract multiple tables or views:
    DSN Table Selection

  6. When prompted to select Unique Key column DO NOT select any column(s) and just click OK: MS Access Linked Table - Key selection

  7. Finally, Simply double-click the newly created Linked Table to load the data: MS Access Linked Table

Guide to Effectively Addressing Known Issues

Discover effective strategies to address known issues efficiently in this guide. Get solutions and practical tips to streamline troubleshooting and enhance system performance, ensuring a smoother user experience.

Fewer Rows Imported

The reason for this is that MS Access has a default query timeout of 60 seconds, which means it stops fetching data if the query takes longer than that. As a result, only a limited number of rows are fetched within this time frame.

To address this, we can adjust the Query Timeout by following the steps below.

The path may vary depending on the MS Access bitness, such as 32-bit versus 64-bit.

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ODBC

We can identify this issue by examining the Fiddler Log, as MS Access doesn't display any error regarding partial import, which is quite unusual

Please refer to this link : How to use Fiddler to analyze HTTP web requests

#Deleted word appears for column value in MS Access for Linked Table mode

If you used Linked Table mode to get external data and it shows #deleted word rather than actual value for column after you open then most likely its following issue.

Make sure to re-create Linked Table and DO NOT select any key column when prompted (Just click OK) MS Access Linked Table Mode - #Deleted Error
How to Fix
MS Access Linked Table Mode - Do not select Key column

Table Selection UI Opening Delays

The Table selection UI takes a significant amount of time to open after clicking the 'New Data Source' -> 'Other Data Sources' -> 'ODBC'

The reason for this issue is that MS Access sends a dummy query, leading to several unnecessary pagination cycles before an error is thrown. To mitigate this, we can prevent wasted cycles by configuring the 'Throw error if no match' setting on the Filter Options Tab.
Throw error if no match

Enhancing Performance through Metadata Addition (Reduces Query Time)

We can optimize query performance by creating Virtual Tables (i.e. views with custom SQL) on Datasource and incorporating META=static columns. Learn how to capture static metadata in this guide.
Performance Options - Generate Metadata Manually

Execute the query initially, save the metadata by selecting 'Save to Meta' (choose Compact Format), and then click 'Save to Clipboard.' Utilize the resulting list by pasting it into the META attribute as follows: 'META=paste here.'
Generate Metadata in ZappySys ODBC Drivers

SELECT * FROM products
        META='id:String(20); title:String(100);  description:String(500);'

Optimize Workflow with Automated Import

Employ Automated Import when Linked Tables are not feasible, and we need to depend on Imported Tables with static data.

While using Linked Tables sometime it encounter errors, and we are left with no alternative but to utilize Imported Tables, Automatic Refresh becomes crucial in such scenarios.

Here's a guide on automating refreshes. We can set up automatic refresh on different events, such as when the database opens, a form is opened, or a button is clicked.

To initiate the import process, follow these steps:

  • Perform the data import using the standard manual steps.
  • In the final step, we'll encounter a checkbox labeled 'Save Import Steps.' Ensure to check this option.
  • After saving the steps, we can locate their name in the Save Imports UI. Identify the name associated with the saved steps.
  • "Now, we can execute the code as shown below:"
Private Sub cmdYes_Click()
    Label0.Visible = True
    DoCmd.RunSavedImportExport "Import-DATA.products"
    Label0.Visible = False
End Sub


In this article we discussed how to connect to Salesforce in MS Access and integrate data without any coding. Click here to Download Salesforce Connector for MS Access and try yourself see how easy it is. If you still have any question(s) then ask here or simply click on live chat icon below and ask our expert (see bottom-right corner of this page).

Download Salesforce Connector for MS Access Documentation 

Other App Integration scenarios for Salesforce

Other Connectors for MS Access

Download Salesforce Connector for MS Access Documentation 

  • How to connect Salesforce in MS Access?

  • How to get Salesforce data in MS Access?

  • How to read Salesforce data in MS Access?

  • How to load Salesforce data in MS Access?

  • How to import Salesforce data in MS Access?

  • How to pull Salesforce data in MS Access?

  • How to push data to Salesforce in MS Access?

  • How to write data to Salesforce in MS Access?

  • How to POST data to Salesforce in MS Access?

  • Call Salesforce API in MS Access

  • Consume Salesforce API in MS Access

  • Salesforce MS Access Automate

  • Salesforce MS Access Integration

  • Integration Salesforce in MS Access

  • Consume real-time Salesforce data in MS Access

  • Consume realtime Salesforce API data in MS Access

  • Salesforce ODBC Driver | ODBC Driver for Salesforce | ODBC Salesforce Driver | SSIS Salesforce Source | SSIS Salesforce Destination

  • Connect Salesforce in MS Access

  • Load Salesforce in MS Access

  • Load Salesforce data in MS Access

  • Read Salesforce data in MS Access

  • Salesforce API Call in MS Access