Keep SeaTable in step with your Access file, on a schedule
Write the SQL once. Query Streams runs it on your schedule, anything from every five minutes to weekly, and writes the rows into your SeaTable table. Match rows by a key so edits land in place and rows that left the query are removed, or simply append. No Zapier, no scripts, no exports. About fifteen minutes the first time, and the Free plan covers it.
What you’ll end up with
A SeaTable table that holds the rows your Access query returns and is brought up to date on a schedule, every five minutes to weekly, with a receipt of what changed on every run. Like this:
Microsoft Access holds your data in a file. Your team works in SeaTable. The usual bridge is a Zapier or Make scenario, or a CSV someone uploads that breaks quietly and copies one row at a time. Query Streams Automation does it differently: the Agent that already reads your Access file runs your saved SQL on a schedule and writes the whole result into SeaTable in one pass, matching rows by a key so the table stays correct rather than growing.
What you’ll need
Access connected through the Agent
The Agent installed on the computer that holds your Access file, or on one that reads it from a network share, with the connection added in Data Agents. Not done yet? Connect Access first; it takes about ten minutes.
A saved query
The SELECT you want to keep in sync, saved in Query Builder. Step 1 below shows one. If you want changed rows updated in place, include a column that is unique per row, like an ID.
Your SeaTable login
Enter your SeaTable server address (the default is cloud.seatable.io) and an API token for the base. Query Streams swaps it for a short-lived base token each time it needs one.
Where does the work happen? On the computer that runs the Agent. It runs the query on the schedule and writes the rows to SeaTable, so that computer needs to stay on. Your browser can be closed. Query Streams itself never stores the rows.
File on another computer? The Agent does not have to run on the computer that holds your Access file: it can read the file from a network share. Reaching a file on a network share, below, shows what that takes.
Set it up in six steps
-
Save the query you want to keep in sync
Open Query Builder, pick your Access connection (not connected yet? start here), and write the SELECT that returns exactly the rows and columns you want in SeaTable. This one pulls a few columns from a Customers table:
Example · SQLSELECT TOP 100 CustomerID, CompanyName, City FROM Customers ORDER BY CompanyName;
Run it, then Save it with a name you will recognise, like “Orders for SeaTable”. Keep a column that is unique per row in the SELECT, here CustomerID. That is the key Full Sync uses to update rows in place. Edit and re-save the query later and the automation picks up the change on its next run.
-
Open Automation and choose SeaTable
In the portal, open Automation (top menu Streams → Scheduled → Automation) and click New automation. The wizard has five short steps. On Step 1 click the SeaTable card.
Seeing “Before You Begin” instead? The wizard only opens once an Agent is online with a connection and at least one saved query exists. The page lists which of the three is missing and links to it.
-
Connect SeaTable
On Step 2 fill in Server URL (leave it blank for SeaTable Cloud) and the API Token for your base, then click Test Connection. In SeaTable the token lives under the base’s menu: Base Settings → API Token. Enter your SeaTable server address (the default is cloud.seatable.io) and an API token for the base. Query Streams swaps it for a short-lived base token each time it needs one.
-
Choose where the rows land
On Step 3 pick the Table the rows should land in. Create it in SeaTable first if you want an empty one. If it already has rows, a preview shows them and explains what each sync mode would do to them. One automation per table.
-
Pick the query and decide how rows land
On Step 4 open the Saved Query list and choose the query from step 1. Query Streams runs it once to read the columns, tells you how many rows it returns, and shows two choices:
Append · fastAppend
Every run adds the query’s rows to the bottom of the table. Nothing is updated and nothing is deleted, so it is the quick choice for logs, events and history you want to accumulate. No key column needed. A row that comes back unchanged is not added again; a row whose values changed is added below as a new line and the old one stays.
Full Sync · mirrorsFull Sync
Rows are matched by a key column such as an order ID. New rows are added, changed rows are updated in place, and rows that no longer come back from the query are removed, including rows someone typed into the table by hand, so keep hand-made rows on another table. This is the choice for inventory, pipelines, master data and dashboards.
Full Sync is set per column, which is what makes it useful in a shared table:
- Key
- The column that identifies a row, for example order_id. It has to be unique in the query result; Query Streams checks that for you and refuses duplicates.
- Sync
- Overwritten from Access on every run. If someone edits a Sync column in SeaTable, the next run puts the source value back.
- Preserve
- Written when the row first arrives and never compared again, so a change to it in Access does not trigger an update. For notes, owners and follow-up dates your team types by hand, use a column that is not in the query at all: columns that exist only in SeaTable are never touched by a sync.
Which is faster? Append writes without reading the table first. Full Sync reads it, compares every row, and writes only the differences, so it takes longer but the table always matches the query. You can switch later from the automation’s Edit panel.
For a table you want to trust, click Create all columns as Sync, then click the key icon on CustomerID to make it the Key. Query Streams scans the whole result to confirm the key is unique and warns you if it is not. Keep your team’s own notes in columns that are not part of the query; those are never touched. For a log that should only ever grow, click Create all columns as Preserve instead and skip the key. Click Continue.
-
Set the schedule, name it, create it
On Step 5 choose Run on a schedule and pick a Frequency:
Frequency Runs Every 5 Minutes every 5 minutes, the fastest allowed Every 15 Minutes every 15 minutes Every 30 Minutes every 30 minutes Every Hour at the top of every hour Daily at 9 AM every day at 9:00, the default Daily at 6 AM every day at 6:00 Weekdays at 9 AM Monday to Friday at 9:00 Weekly (Monday 9 AM) every Monday at 9:00 Custom Schedule your own minutes, hours, days of the week or day of the month Times follow the Timezone you pick, which starts as your browser’s. You can also choose Manual only and press Run whenever you like; a schedule can be added later from the automation’s Edit panel. Scheduled runs happen on the Agent, so they keep going while your browser is closed. If the computer running the Agent is off when a run is due, the missed run happens once, shortly after the Agent starts again.
Give it an Integration Name, such as “Orders to SeaTable, daily”, check the Ready to Create summary and click Create Automation. Back on the Automation page, press Run once to do the first sync now rather than waiting for the schedule. Open SeaTable: the rows are there, under your column headers.
That’s it. From now on the table keeps itself current. Nothing left your network except the rows the query returned, and nobody has to remember to run anything.
What you see afterwards
The Automation page lists every automation with its status, source, target, key, schedule, last sync and row count. Open one for the Executions tab: every run with its trigger (manual or scheduled), duration, and rows created, updated, deleted and unchanged. A Performance tab shows data processed and success rate over 7 to 90 days.
You are told when it stops
Every organisation has a Sync Issues alert rule from day one: an in-app notice and an email when a sync fails, and one more when it recovers. One message per incident, never one per retry. Turn it off or change the channels under Streams → Alerts & Reports.
It pauses itself when it should
If SeaTable stops accepting the connection, or the data connector is deleted, the automation pauses and says why. Reconnect or pick a new source and press Resume. Other errors keep the schedule going and show on the row.
Key column missing
If someone renames or deletes the key column in SeaTable, Full Sync stops before writing anything and shows Fix options: put the column back with its exact name and run again. Your other columns are never deleted by a sync.
What the plans allow
Automation is on every plan, including Free, with no limit on how many automations you create. What each plan limits is how many rows one query may return per run:
| Plan | Rows per run |
|---|---|
| Free | 125 |
| Personal Core | 500 |
| Personal Plus | 1,000 |
| Business Core | 2,500 |
| Business Plus | 5,000 |
| Business Max | 10,000 |
| Enterprise Core | 25,000 |
| Enterprise Plus | 100,000 |
| Enterprise Max | 250,000 |
If a query returns more, the run is held rather than cut short, and the automation tells you which plan fits or suggests adding a filter such as a date range. Each successful run also counts against your Data Realm allowance, the same pool your Excel and Sheets queries use. See the pricing page for the allowances.
Good next moves
- Add a filter to the query, such as the last 90 days, so the table stays small and fast and fits your plan’s row limit.
- Keep hand-typed notes in their own columns, outside the query, so they survive every sync.
- Group your automations from the Edit panel once you have a few; the Automation page filters by group.
Reaching a file on a network share
If the test cannot get to the share, look for these words in its result: unreachable means the Agent’s computer got no answer from the server.
Microsoft Access file on a share? The account the Agent reads with needs Modify permission on the folder, because Access creates a .laccdb lock file beside the database even when it only reads. Do not run the Agent for Access on a computer with 32-bit Office; use a dedicated computer without it. Signing in to the file server · If the computer has 32-bit Office
Test failed on a share?
Every run reaches the file the same way the connection test does. If runs start failing after something changed on the file server, a new password for example, open the connector in Data Agents and click Test connection. The test result, and the line under the file path, name the problem:
| Message | Cause | Fix |
|---|---|---|
| Access database file does not exist: followed by a \\server\share path you know is right | No login is stored, so the Agent tried the share as its own account and could not see the file: the share turned that account away, or the server did not answer. In the first case the line under the path says Access denied for the agent’s service account. | Click Service identity under the path and store a login that can read the share. If the line under the path does not say access denied, check that the Agent’s computer can open the share at all. |
| Share \\server: access denied — add credentials for this server | A login is stored, but that account has no permission on the share, or another sign-in to the same server is in the way; the message before this line says which. | Ask whoever runs the server to give that account read access, or store an account that has it. For a sign-in in the way, see the two rows on one login per server below. |
| Share \\server: the credentials were refused — check the username and password | The server turned the stored login down: a typo, the wrong domain, or a password changed since it was saved, which also stops runs that used to work. | Click the chip under the path and type the password again; for an account made on the server itself, leave Domain blank. After a refused login the Agent waits a minute before it tries that same one again, so the account is not locked out; saving a corrected password tries straight away. |
| Share \\server: server unreachable from the agent machine | The Agent’s computer got no answer from the server: a wrong server name, the server is off, or a firewall blocks file sharing. | On the Agent’s computer, open the same \\server\share path in File Explorer. If that fails too, it is a network problem for whoever runs the network. |
| Another connector on this agent already signs in to \\server as … | Windows lets one computer sign in to a server as one account at a time, and another connector on this Agent uses a different login for that server. | Store the same login the other connector uses, or change it on every connector that reads that server. |
| Windows already holds a sign-in to \\server for … | Something on the Agent’s computer other than the Agent is already signed in to that server as a different account, and the Agent never closes a sign-in it did not make. | Do what the rest of the message says: use that same account on this connector, or close the other sign-in on the Agent’s computer. If it says the share is already readable through that sign-in, choose Use service identity in the login box instead. |
| This agent build cannot sign in to \\server with stored credentials. | The Agent is an older version that cannot use stored logins. | Update the Agent, then test again. |
| The agent cannot write to the folder containing the Access database. | The account can read the file but cannot create the .laccdb lock file beside it. | Give that account Modify permission on the folder, the same as any Access user has. |
Messages about the database engine or Office are in the Microsoft Access connector guide’s Test failed? table.
Questions people ask
Will the sync overwrite notes my team adds in SeaTable?
Not if the notes live in their own column. Columns that exist only in SeaTable and not in your query are never touched, so add a Notes or Owner column beside the synced ones and type there. Columns marked Sync are put back to the Access value on every run; Preserve columns are filled when a row first arrives and are not compared afterwards.
Does my Access data get stored by Query Streams?
No. The Agent runs the query on your side and sends the rows straight on to SeaTable over an encrypted link. Query Streams keeps the configuration, the schedule and a count of rows per run, not the rows themselves.
Does my computer need to stay on?
The one running the Agent does, because the Agent is what runs the query and writes to SeaTable. Your own laptop and browser can be closed. If that computer is off when a run is due, the missed run happens once, shortly after the Agent starts again.
Can I change the query later?
Yes. Edit and save it in Query Builder and the next run uses the new version automatically. If you add or remove columns, open the automation’s Edit panel to map them.
Can two automations write to the same table?
No, one automation per table. Point a second automation at a different table, or widen the query behind the first one.
Does the Free plan really cover this?
Yes. Free is a plan you keep, not a trial that expires. Automation is included on every plan; what changes by plan is how many rows one query may return per run. See exactly what Free includes on the pricing page.
Related guides
Every guide for Access
Setup trouble?
- Access engine will not install, the file is on a mapped drive, or Test connection fails? The Access setup page walks each fix click by click → Microsoft Access connector setup
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

