Moving Access tables to SQL Server while retaining forms is a database-first migration: storage changes before the client application is replaced. Its success depends on the intersection of data conversion, ODBC connectivity, and behavior still implemented in Access objects.

The visible form can remain familiar while its data access and update conditions change. Acceptance must therefore follow a business operation through the retained client and the new server, including rules and failures that are not visible in the screen layout.

Draw the boundary around an operation

Take a constructed order-entry example. A form validates an entered quantity, a query retrieves a price, VBA prepares an update, and server-side logic changes related values. Preserving the table rows covers only part of that operation.

The inventory should connect local and linked tables, local and pass-through queries, VBA rules, server procedures, triggers, and permissions. It should identify where each rule actually takes effect rather than assuming that all validation lives beside the data.

This becomes essential when another client is proposed. A new service that writes directly to SQL Server can bypass a rule enforced only by an Access form. The rule needs an explicit retained, relocated, or retired implementation.

Conversion leaves client objects in place

SSMA handles tables and some queries in the documented Access migration route. It does not convert forms, reports, macros, or VBA modules. Completing supported object conversion therefore does not establish that the whole application has moved.

Data-type mappings need controlled examples: nulls, decimals, dates, identifiers, and values modified by triggers. A value can load successfully while being displayed, rounded, or compared differently through the retained client.

A report’s acceptance should include its business totals and selection rules. Its ability to open against the new tables is only a connection and execution observation.

The driver participates in behavior

The ODBC path includes the application process, driver manager, driver, and data source. The driver must match the required process architecture and connection configuration under the real user identity.

A visible Windows DSN does not prove compatibility. User DSNs can appear in both architecture-specific administration tools even when the application cannot use the associated driver.

Representative queries also need execution analysis. Moving storage to a server does not establish that every retained query filters efficiently on that server. Measure the actual workload and determine where relevant work occurs before claiming a performance benefit.

Concurrent edits need a defined result

Microsoft’s migration guidance discusses adding rowversion for linked-table updates when migrating to SQL Server 2016 or later. It helps Access detect changed records; it is not a date/time value or a guarantee that every conflict disappears.

A concurrent-edit test should establish what the second user sees when a record changes after it was read. The accepted behavior can include rejection, refresh, or a controlled conflict-resolution workflow, depending on the business operation.

Connection loss deserves its own case. An uncertain response after a submitted update must not automatically trigger a repeat that creates another business action.

Cutover changes write authority

A rehearsal should identify all writers and state which store is authoritative at each stage. Read-only comparison can validate a candidate without granting it independent production write authority.

Data-validation tools have their own exclusions and concurrency limits. For example, AWS DMS warns that external writes to its target can make discrepancy reporting inaccurate; this is a limit of that tool, not a universal validation rule.

After SQL Server accepts new production writes, restoring the old Access back end requires a decision about those transactions. Acceptance includes both the retained client’s correct behavior and a demonstrated handover whose recovery plan accounts for the new data.